Python动态网页抓取需Selenium与requests结合:Selenium处理JS渲染、登录验证等交互,requests高效调用API获取数据。关键在于用Selenium提取Cookie、Token等参数后交由requests批量请求,兼顾真实性与效率。
Python动态网页抓取不能只靠requests,因为很多页面内容由JavaScript异步加载,requests拿不到渲染后的HTML。这时候需要Selenium驱动浏览器模拟真实访问,再配合requests高效处理后续请求(如接口、图片、文件等),两者结合才能兼顾“可执行性”和“效率”。
启动浏览器(推荐Chrome + ChromeDriver),打开目标网址,等待关键元素出现后再提取页面源码。注意显式等待比time.sleep()更可靠。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://example.com")
# 等待某个class为"content"的div加载完成
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "content")))
html = driver.page_source # 此时html含JS渲染后的内容
driver.quit()
有些动态页的数据来自XHR接口(比如列表分页、评论、商品详情)。与其让Selenium反复点击翻页,不如用它先登录/触发一次,再从Network面板或页面源码中分析出API地址、headers、cookies、token等,转而用requests批量调用——速度快、资源省、易调试。
driver.get_cookies()获取当前会话cookie,传给requests.Session()
driver.execute_script("return window.localStorage.getItem('token')")读取前端存储的认证信息典型场景如登录后爬商品列表:Selenium完成输入账号密码、点登录、过滑块验证;登录成功后,用requests直接调用商品API(带Cookie和Token),避免Selenium逐页跳转、解析DOM。
driver.current_url确认跳转成功,再用driver.get_cookie("sessionid")提取关键凭证s = requests.Session()
for cookie in driver.get_cookies():
s.cookies.set(cookie['name'], cookie['value'])
resp = s.get("https://api.example.com/items?page=2", headers={"User-Agent": "Mozilla/5.0..."})
driver.execute_script("return generateSign(...)")),再传给requests两者结合不是简单拼接,要注意上下文一致性与反爬适配。
gent较明显,建议启动时加参数伪装:options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...")
options.add_argument("--blink-settings=imagesEnabled=false")
# javascript
# python
# java
# html
# js
# 前端
# windows
# cookie
# 浏览器
# 工具
相关文章:
如何在Golang中使用replace替换模块_指定本地或远程路径
SQL查询语句优化的实用方法总结
建站主机选虚拟主机还是云服务器更好?
想学网站制作怎么学,建立一个网站要花费多少?
建站之星安装后界面空白如何解决?
建站之星后台管理系统如何操作?
制作网站的软件免费下载,免费制作app哪个平台好?
建站之星如何保障用户数据免受黑客入侵?
如何用西部建站助手快速创建专业网站?
建站之星导航配置指南:自助建站与SEO优化全解析
网站app免费制作软件,能免费看各大网站视频的手机app?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
名字制作网站免费,所有小说网站的名字?
郑州企业网站制作公司,郑州招聘网站有哪些?
深圳网站制作的公司有哪些,dido官方网站?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
临沂网站制作企业,临沂第三中学官方网站?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
如何通过西部数码建站助手快速创建专业网站?
建站之星如何实现PC+手机+微信网站五合一建站?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
制作网站外包平台,自动化接单网站有哪些?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
如何在阿里云通过域名搭建网站?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
c# 在ASP.NET Core中管理和取消后台任务
如何撰写建站申请书?关键要点有哪些?
如何通过VPS建站实现广告与增值服务盈利?
,网页ppt怎么弄成自己的ppt?
油猴 教程,油猴搜脚本为什么会网页无法显示?
大连网站设计制作招聘信息,大连投诉网站有哪些?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
如何将凡科建站内容保存为本地文件?
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何生成腾讯云建站专用兑换码?
高防服务器:AI智能防御DDoS攻击与数据安全保障
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何在宝塔面板中创建新站点?
济南网站制作的价格,历城一职专官方网站?
建站之星如何优化SEO以实现高效排名?
招商网站制作流程,网站招商广告语?
建站之星Pro快速搭建教程:模板选择与功能配置指南
如何基于PHP生成高效IDC网络公司建站源码?
专业网站建设制作报价,网页设计制作要考什么证?
建站主机与虚拟主机有何区别?如何选择最优方案?
*请认真填写需求信息,我们会在24小时内与您取得联系。