基于Python的網(wǎng)頁(yè)自動(dòng)化工具DrissionPage的使用詳解
簡(jiǎn)介
DrissionPage 是一個(gè)基于 python 的網(wǎng)頁(yè)自動(dòng)化工具。它既能控制瀏覽器,也能收發(fā)數(shù)據(jù)包,還能把兩者合而為一。可兼顧瀏覽器自動(dòng)化的便利性和 requests 的高效率。它功能強(qiáng)大,內(nèi)置無(wú)數(shù)人性化設(shè)計(jì)和便捷功能。它的語(yǔ)法簡(jiǎn)潔而優(yōu)雅,代碼量少,對(duì)新手友好。
安裝
pip install DrissionPage # 升級(jí)最新穩(wěn)定版 pip install DrissionPage --upgrade # 指定版本升級(jí) pip install DrissionPage==4.0.0b17
主要對(duì)象
ChromiumPage:?jiǎn)渭冇糜诓僮鳛g覽器的頁(yè)面對(duì)象
SessionPage:?jiǎn)渭冇糜谑瞻l(fā)數(shù)據(jù)包的頁(yè)面對(duì)象
WebPage:整合瀏覽器控制和收發(fā)數(shù)據(jù)包于一體的頁(yè)面對(duì)象
嘗試啟動(dòng)瀏覽器
from DrissionPage import ChromiumPage
page = ChromiumPage()
page.get('http://g1879.gitee.io/DrissionPageDocs')
設(shè)置路徑
首先通過(guò)Chrome快捷方式是找到Chrome路徑。

from DrissionPage import ChromiumOptions path = r'D:\Chrome\Chrome.exe' # 請(qǐng)改為你電腦內(nèi)Chrome可執(zhí)行文件路徑 ChromiumOptions().set_browser_path(path).save()
定位元素、觸發(fā)事件
from DrissionPage import ChromiumPage
# 創(chuàng)建頁(yè)面對(duì)象,并啟動(dòng)或接管瀏覽器
page = ChromiumPage()
# 跳轉(zhuǎn)到登錄頁(yè)面
page.get('https://gitee.com/login')
# 定位到賬號(hào)文本框,獲取文本框元素
ele = page.ele('#user_login')
# 輸入對(duì)文本框輸入賬號(hào)
ele.input('您的賬號(hào)')
# 定位到密碼文本框并輸入密碼
page.ele('#user_password').input('您的密碼')
# 點(diǎn)擊登錄按鈕
page.ele('@value=登 錄').click()
遍歷數(shù)據(jù)
from DrissionPage import SessionPage
# 創(chuàng)建頁(yè)面對(duì)象
page = SessionPage()
# 爬取3頁(yè)
for i in range(1, 4):
# 訪問(wèn)某一頁(yè)的網(wǎng)頁(yè)
page.get(f'https://gitee.com/explore/all?page={i}')
# 獲取所有開源庫(kù)<a>元素列表
links = page.eles('.title project-namespace-path')
# 遍歷所有<a>元素
for link in links:
# 打印鏈接信息
print(link.text, link.link)
切換模式
from DrissionPage import WebPage
# 創(chuàng)建頁(yè)面對(duì)象
page = WebPage()
# 訪問(wèn)網(wǎng)址
page.get('https://gitee.com/explore')
# 查找文本框元素并輸入關(guān)鍵詞
page('#q').input('DrissionPage')
# 點(diǎn)擊搜索按鈕
page('t:button@tx():搜索').click()
# 等待頁(yè)面加載
page.wait.load_start()
# 切換到收發(fā)數(shù)據(jù)包模式
page.change_mode()
# 獲取所有行元素
items = page('#hits-list').eles('.item')
# 遍歷獲取到的元素
for item in items:
# 打印元素文本
print(item('.title').text)
print(item('.desc').text)
print()
參考
https://g1879.gitee.io/drissionpagedocs/
到此這篇關(guān)于基于Python的網(wǎng)頁(yè)自動(dòng)化工具DrissionPage的使用詳解的文章就介紹到這了,更多相關(guān)Python DrissionPage網(wǎng)頁(yè)自動(dòng)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python沒(méi)有g(shù)pu,如何改用cpu跑代碼
這篇文章主要介紹了python沒(méi)有g(shù)pu,如何改用cpu跑代碼?今天小編就為大家分享一下解決方案。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Django1.11配合uni-app發(fā)起微信支付的實(shí)現(xiàn)
這篇文章主要介紹了Django1.11配合uni-app發(fā)起微信支付的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
VSCode搭建Django開發(fā)環(huán)境的圖文步驟
本篇介紹在vscode環(huán)境下搭建Django開發(fā)環(huán)境的詳細(xì)步驟,包括Python、Django、VSCode等,以及它們的安裝和配置方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
解決使用Spyder IDE時(shí)matplotlib繪圖的顯示問(wèn)題
這篇文章主要介紹了解決使用Spyder IDE時(shí)matplotlib繪圖的顯示問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
python第三方模塊xmltodict庫(kù)優(yōu)雅處理xml格式為json
這篇文章主要為大家介紹了python第三方模塊xmltodict庫(kù)優(yōu)雅處理xml格式為json實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Pycharm添加虛擬解釋器報(bào)錯(cuò)問(wèn)題解決方案
這篇文章主要介紹了Pycharm添加虛擬解釋器報(bào)錯(cuò)問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10

