简介:
DrissionPage 是一个基于 python 的网页自动化工具。它既能控制浏览器,也能收发数据包,还能把两者合而为一
官网地址:
地址:https://www.drissionpage.cn/
相关功能这里不过多阐述,请移步官网
实战案例
1.自动登录instagram
import platform
from DrissionPage import ChromiumPage, ChromiumOptions
if platform.system().lower() == "darwin":
co = ChromiumOptions().set_paths(browser_path=r'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome')
else:
co = ChromiumOptions().set_paths(browser_path=r'/opt/google/chrome/google-chrome') # linux系统路径
co.incognito() # 匿名模式
co.headless() # 无头模式
co.set_argument('--no-sandbox') # 无沙盒模式
co.auto_port()
# 用 d 模式创建页面对象(默认模式)
page = ChromiumPage(co)
# 跳转到登录页面
page.get('https://www.instagram.com/', retry=3, interval=15, timeout=15)
# 定位到账号文本框并输入账号
page.ele("x://input[@name='username']").input('用户名')
# 定位到密码文本框并输入密码
page.ele("x://input[@name='password']").input('密码')
# 点击登录按钮
page.ele("x://div[text()='登录']").click()
print(page.cookies())
2. 自动过e车网滑块
import random
import time
import platform
from DrissionPage import ChromiumPage, ChromiumOptions
if platform.system().lower() == "darwin":
co = ChromiumOptions().set_paths(browser_path=r'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome')
else:
co = ChromiumOptions().set_paths(browser_path=r'/opt/google/chrome/google-chrome') # linux系统路径
co.incognito() # 匿名模式
co.headless() # 无头模式
co.set_argument('--no-sandbox') # 无沙盒模式
co.auto_port()
# 用 d 模式创建页面对象(默认模式)
page = ChromiumPage(co)
# netstat -anv | grep 9222 查询端口占用情况
def purchase_slide():
# 移动像素
ss = 300
page.wait.eles_loaded("x://span[contains(@id,'nc_1_n1z')]")
page.ele("x://span[contains(@id,'nc_1_n1z')]").hover() # 鼠标悬停
page.actions.hold("x://span[contains(@id,'nc_1_n1z')]") # 按住鼠标左键不放
page.actions.move(ss, duration=random.random())
time.sleep(random.random())
page.get("http://purchase.ecrrc.com/order-0/list-0-0-0-1.html")
if page.ele("x://span[contains(text(), '请按住滑块')]"):
purchase_slide()
对于加密比较复杂而采集数量比较小的需求,可以考虑这种自动化的方式,是一种不错的选择,方便省时