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
# 浏览器
# 工具
相关文章:
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
如何通过商城免费建站系统源码自定义网站主题?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
h5网站制作工具有哪些,h5页面制作工具有哪些?
网站制作价目表怎么做,珍爱网婚介费用多少?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何通过多用户协作模板快速搭建高效企业网站?
如何在香港服务器上快速搭建免备案网站?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
制作网站公司那家好,网络公司是做什么的?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
全景视频制作网站有哪些,全景图怎么做成网页?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
如何在阿里云域名上完成建站全流程?
网页设计网站制作软件,microsoft office哪个可以创建网页?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何确保FTP站点访问权限与数据传输安全?
Thinkphp 中 distinct 的用法解析
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
制作网站怎么制作,*游戏网站怎么搭建?
如何通过VPS搭建网站快速盈利?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
已有域名和空间如何快速搭建网站?
如何通过虚拟机搭建网站?详细步骤解析
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
建站之星安装后如何配置SEO及设计样式?
制作门户网站的参考文献在哪,小说网站怎么建立?
如何撰写建站申请书?关键要点有哪些?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
行程制作网站有哪些,第三方机票电子行程单怎么开?
如何选择域名并搭建高效网站?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
建站主机选购指南与交易推荐:核心配置解析
如何通过FTP服务器快速搭建网站?
浅析上传头像示例及其注意事项
c# 在高并发场景下,委托和接口调用的性能对比
如何在自有机房高效搭建专业网站?
微课制作网站有哪些,微课网怎么进?
利用JavaScript实现拖拽改变元素大小
建站之星北京办公室:智能建站系统与小程序生成方案解析
红河网站制作公司,红河事业单位身份证如何上传?
宝塔建站无法访问?如何排查配置与端口问题?
建站之星如何一键生成手机站?
油猴 教程,油猴搜脚本为什么会网页无法显示?
linux top下的 minerd 木马清除方法
如何在阿里云部署织梦网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。