当前位置: 首页 > news >正文

爬虫学习——获取动态网页信息

对于静态网页可以直接研究html网页代码实现内容获取,对于动态网页绝大多数都是页面内容是通过JavaScript脚本动态生成(也就是json数据格式),而不是静态的,故需要使用一些新方法对其进行内容获取。凡是通过静态方法获取不到的内容,均为动态网页生成的内容。

对于硬编码在JavaScript中的内容,可以直接对js进行下手;但是对于JavaScript通过HTTP请求跟网站动态交互获取信息的方式,其需要对应的渲染引擎处理后,在执行爬取操作。

幸运的是,Scrapy中刚好有对应的渲染引擎Splash(Webkit开发且无界面的浏览器,提供基于JavaScript的HTTP接口的渲染服务),可以通过它获得以下内容:经过渲染后的HTML页面或者网页截图;支持并发渲染多页面。

那么如何使用Splashd的服务呢?

首先在Linux中安装它,然后在本地端口8050或8051端口启动该服务。安装的时候记得选择管理员权限

Sudo apt-get install docker //借助docker容器进行安装,故先安装docker

Sudo docker pull scrapinghub/splash //借助docker获取splash

Sudo docker run -p 8050:8051-p 8050:8051 scrapinghub/splash //在对应的端口启动渲染服务。

为了更深入学习Splash的功能,可以参考以下文档:
Splash HTTP API — Splash 3.5 documentation该网页链接指向Splash项目的API文档页面。Splash是一个用Python编写的轻量级浏览器自动化工具,主要用于渲染和抓取JavaScript动态生成的网页内容。该链接的文档页面提供了Splash的应用程序编程接口(API)的详细信息,开发者可以通过这些API与Splash进行交互实现诸如加载网页、执行JavaScript代码、获取页面截图、提取页面内容等功能。

其中Splash的两个api端点Render.html用于提供JavaScript页面渲染服务和execute可用于执行用户自定义的JavaScript脚本代码。

使用这render.html的服务只需要知道以下参数即可:

Render.htmld的请求地址:http://localhost:8050/render.html;请求方式:GET/POST

返回类型:html。适用于爬取JavaScript的动态数据

Execute用于运行用户自定义的模拟点击页面中的按钮和模拟人与页面进行交互的操作。

使用这execute的服务只需要知道以下参数即可:

Execute的请求地址:http://localhost:8050/execute;请求方式:POST;返回类型:自定义;

传入代码:自定义的lua脚本。适用场景:模拟人打开页面;等待页面加载;执行JavaScript代码;获取HTTP响应头;模拟人获取Cookie。

除了在Linux中借助docker来使用Splash的服务外,也可以在pycharm中通过pip install scrapy-splash指令来使用该服务,然后必须在settings.py文件中对其进行内容配置(Splash服务器地址,设置去重过滤器,缓存参数等),另外记得加上USER_AGENT在setting.py中。

如何查看USER_AGENT?在网页检查中可以看到:

相关文章:

  • 智能滚动抽奖--测试报告
  • PH传感器详解(STM32)
  • 3DMAX零售商店生成插件RetailStore自定义贴图库方法详解
  • 深度学习优化器和调度器的选择和推荐
  • 【Java面试笔记:基础】13.谈谈接口和抽象类有什么区别?
  • Spring Boot 的配置加载顺序
  • socket编程基础
  • node.js 实战——(fs模块 知识点学习)
  • gem5教程第三章 向配置脚本添加缓存
  • 智启未来|艾博连科技加入奇瑞雄狮科技LION AI联合实验室
  • 机器视觉的智能手机屏贴合应用
  • leetcode-枚举
  • RabbitMQ 详解(核心概念)
  • 蓝桥杯 15.小数第n位
  • 【OSCP-vulnhub】Raven-2
  • 基于nodeJS代码的通过爬虫方式实现tiktok发布视频(2025年4月)
  • 算法题-图论
  • Java高级:数据库访问优化
  • 网络安全零基础培训 L1-7 Web基础和CSS渲染
  • JVM考古现场(二十五):逆熵者·时间晶体的永恒之战(进阶篇)
  • 何以中国|福建武夷山:千年茶道的文旅“破圈”与新生
  • 呈现“民族脊梁型爱国学府”曲折辉煌的办学历程,这个展览开幕
  • “很多中国企业竞争力独一无二”,这场对接会上他频频为协同供应链点赞
  • 牛市早报|外汇局:4月以来外汇市场交易保持平稳,跨境资金延续净流入
  • 匈牙利总理投票反对乌克兰加入欧盟
  • 宇树的任务已经完成?王兴兴也在等待行业拐点