DrissionPage 入门教程
访问网页
本教程共 42 篇 · 第 10 篇 · 更新于 2026-07-29 · 约 6 分钟阅读
DrissionPageDrissionPage 入门教程get方法post方法加载模式
10. 访问网页
本节目标:掌握 get() 和 post() 方法的使用,理解加载模式的作用,能配置超时和重试。
访问网页是最基本的操作。
DrissionPage 提供了 get() 和 post() 两种方式。
get() 方法
跳转到指定网址:
from DrissionPage import Chromium
tab = Chromium().latest_tab
tab.get('https://www.baidu.com')
也可以访问本地文件:
tab.get(r'C:\Users\test\page.html')
超时和重试
网络不稳定时可以配置:
tab.get(
'https://www.baidu.com',
retry=3, # 重试次数
interval=2, # 重试间隔(秒)
timeout=10 # 加载超时(秒)
)
不指定 retry 和 interval 时,使用页面对象的默认设置。
错误处理
默认连接失败不抛异常,返回 False:
success = tab.get('https://www.baidu.com')
if not success:
print('访问失败')
想看到错误信息:
tab.get('https://www.baidu.com', show_errmsg=True)
post() 方法
s 模式下用 POST 方式发送请求:
from DrissionPage import SessionPage
page = SessionPage()
response = page.post(
'https://api.example.com/login',
data={'user': 'test', 'pwd': '123'}
)
print(response.json())
参数和 requests 库基本一致:
page.post(
url,
data={'key': 'value'}, # 表单数据
json={'key': 'value'}, # JSON 数据
headers={'User-Agent': '...'}, # 请求头
cookies={'token': 'xxx'}, # cookies
proxies={'http': 'http://...'} # 代理
)
加载模式
加载模式决定 get() 后等待什么。
normal 模式(默认)
等待所有资源加载完毕:
tab.set.load_mode.normal()
tab.get('https://www.baidu.com')
适合需要完整页面内容的场景。
eager 模式
DOM 加载完就停止,不等图片、CSS 等资源:
tab.set.load_mode.eager()
tab.get('https://www.baidu.com')
速度更快,适合只需要 DOM 结构的场景。
none 模式
发请求后不阻塞,不自动停止加载:
tab.set.load_mode.none()
tab.get('https://www.baidu.com')
# 可以手动停止
tab.stop_loading()
自由度最高。可以等关键数据出现就停止,大幅提升效率。
等待加载
除了加载模式,还可以用 wait 对象精确控制:
# 等待页面开始加载
tab.wait.load_start()
# 等待页面加载完成
tab.wait.load_complete()
# 等待特定元素出现
tab.ele('#result', timeout=10)
实际应用
from DrissionPage import Chromium
tab = Chromium().latest_tab
# 设置加载模式
tab.set.load_mode.eager()
# 访问网页
tab.get('https://www.baidu.com')
# 等待搜索结果出现
tab.ele('#content_left', timeout=10)
# 获取结果
results = tab.eles('tag:h3')
for r in results:
print(r.text)
TIP:开发阶段用 normal 模式,确保页面完整加载。性能敏感的场合切换到 eager 或 none 模式。