scrapy爬取动态页面的正确姿势
不能否认, 它是相当出色的爬虫框架, 其借用的是相似的办法去爬取网页, 即所爬取的是静态页面, 然而实际情形是, 多数网站均为动态的, 我们所见到的正常页面皆是经浏览器渲染后的成果, 倘若径直运用爬取网页的方式, 极有可能无法获取到预期的数据。一种看似理所当然的办法, 便是借助自定义, 采用类似于这种模拟浏览器行为的途径, 从而直接获取到渲染好的html内容, 这般做无疑是行得通的, 而且也能够较为轻易地实现对接, 其存在的欠缺之处在于, 会造成资源消耗的增加。另外存在一种能够直接抵达本质的途径, 那便是寻找到数据的起始源头, 其中有的借助ajax请求去获取数据源, 有的把数据源放置于js代码里, 借助浏览器开发工具对交互过程予以分析, 当找到数据源头后, 要是属于ajax请求, 只要直接请求对应的接口便可以获取到数据, 本文会对数据源在js文件中的提取方式进行介绍。举个例子在此处, 是以某文库的搜索结果当作例子的, 要是直接去进行页面爬取, 那是无法看到下图里的搜索结果的, 经过对页面结构加以分析, 发现源头数据处于脚本之中, 脚本里面大致上就是类似于json的数据对象, 只要获取到js脚本的对象数据, 那就等同于得到了搜索结果。安装能够对js脚本予以解析, 进而获取其中的数据对象, 在此推荐这个库, 它可以直接把js里的数据对象返回, 极为便利, 在使用前需借助pip安装此库。要留意的是, 其核心代码是用c编写而成, 所以在安装时要事先安装c构建工具。1. 如果事先没有安装c构建工具会报错2. 访问上面错误提示中的链接下载c构建工具并安装安装成功之后再次执行pip 安装成功shellShell能够运用交互形式迅速验证用于提取数据的代码, 并非要一次次去运行爬虫进行验证, 极为高效, 接下来就要演示怎样借助shell将js中的数据提取出来。启动 shellscrapy shell https://wenku.baidu.com/search?wordpythonlm0od0frtop_homeieutf-8_wkts_1711155481643wkQuerypython根据返回的结果而言, 已然获取到所爬取的页面内容, 紧接着主要会以其进行数据提取。我们已然清楚数据源处于内里, 径直运用.css()能够获取全部的, 我们所需求的是第二个当中的脚本。从中直接取出js脚本, 通过.css(::text)来进行获取。最后就是导入库执行js代码并获取返回的数据对象import chompjs data chompjs.parse_js_object(js_code)data属于dict字典对象, 所需的数据处于‘’这个键当中, 到这里, 便成功完成啦。我来做个简单总结, 我觉得运用写爬虫根本没必要用到像这般的模拟浏览器下载器, 解决之道是寻找到数据的源头, 没有数据源的话动态网站也就没办法进行渲染了。然而, 此处遗漏了一个关键的环节, 那便是登录, 不同的平台登录机制存在差异, 形形色色的验证码令人烦扰, 直接对抗极有可能撞得头破血流, 所以我不提议将登录部分编写在爬虫之中, 一种更为优良的方案是单独去开发一个池服务, 池服务承担着管理所有平台用户登录的职责, 对于无法自动登录的情况就提供手工登录加以解决, 并且通过 web api 来提供随机获取的功能, 借助调用池的 api 来达成模拟已登录用户状态的目的。

相关新闻

Level 4自动驾驶系统设计45——L2/L3 级软硬件架构 1

Level 4自动驾驶系统设计45——L2/L3 级软硬件架构 1

8.2 L3 级方案:单片 32G/64G 算力 SoC 运行端到端感知网络的性能瓶颈 8.2.1 责任边界重划对 L3 级单片方案的“物理拷问” 从 Level 2 级的“失效安全(Fault-Safe,见 8.1 节)”跨越到 Level 3 级有条件自动驾驶,汽车工业的核心变阵不仅是算法性能的提升,更是法律责任主…

2026/11/6 2:29:50 阅读更多 →
手把手教你学Simulink——构网型控制(Grid‑Forming / GFM)逆变器稳定性分析仿真

手把手教你学Simulink——构网型控制(Grid‑Forming / GFM)逆变器稳定性分析仿真

目录 手把手教你学Simulink——构网型控制(Grid‑Forming / GFM)逆变器稳定性分析仿真 一、VSG / GFM 控制原理(简化) 1.1 有功‑频率 Droop + 虚拟惯量 1.2 无功‑电压 Droop 1.3 电压‑电流双内环(同步旋转 dq) 二、关键参数 三、Simulink 建模(手把手) 3.1 S…

2026/11/9 17:34:09 阅读更多 →
微软王炸开源,狂揽17k star!不会写代码,AI也能当你的专业数据分析师

微软王炸开源,狂揽17k star!不会写代码,AI也能当你的专业数据分析师

你手头有没有积累了一堆数据,比如店铺的销售记录,想知道从这里面挖掘出如何进一步增长业绩的方法。使用第三方BI分析工具,光是安装和连接数据源就能耗掉你一下午的好心情,更别提还要学什么VBA、SQL或者Python了。今天介绍一个超过…

2026/11/2 20:27:19 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/14 5:13:29 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/14 5:13:29 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/14 5:13:29 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/13 22:08:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/14 2:41:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/14 5:13:29 阅读更多 →

日新闻

周新闻

月新闻