本文为

霾大:scrapy_splash 爬取 js 加载网页初体验​zhuanlan.zhihu.com

的补充

在上面的文章中我们仅仅是初步完成了 scrapy_splash 的简单使用

接下来我们将介绍如何是使得 splash 在 render.html (默认)访问网页时也能动态调整其请求头等(代理等同理)

往常来说,我们设置 scrapy 的随机请求头是在中间件处,沿着这个思路,同理我们亦可以沿着这个思路设置,使得爬虫解析与反爬手段分离。

步骤

  1. 首先在 settings 文件放入一批 UA
USER_AGENTS = ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50','Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)','Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)','Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36','Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11','Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11','Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36','Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'
]

2. 修改 middlewares 文件

import random
from scrapy_test.settings import USER_AGENTSclass RandomUA(object):def process_request(self, request, spider):ua = random.choice(USER_AGENTS)request.headers.setdefault('User-Agent', ua)

3. 在 settings 文件启用我们刚定义的中间件

DOWNLOADER_MIDDLEWARES = {# 'scrapy_test.middlewares.ScrapyTestDownloaderMiddleware': 543,'scrapy_test.middlewares.RandomUA': 543,
}

运行结果及解析

确认当前的 request 类型为 SplashRequest
匹配到目标数据,配置 headers 成功

推荐阅读

  1. 霾大:scrapy_splash 爬取 js 加载网页初体验

代码传送门

LZC6244/scrapy_splash_test​github.com

原创文章,转载请保留或注明出处!

scrapy爬取动态网页_scrapy_splash 设置随机请求头相关推荐

  1. scrapy爬取动态网页_scrapy_splash 爬取 js 加载网页初体验

    最近打算学习 scrapy_splash 来爬取 js 加载的动态网页 selenium 实在太慢了,不在迫不得已的情况下并不推荐使用 下面,直接开始吧 目标网站 JD 某商品 环境需求 已安装 do ...

  2. scrapy爬取动态网页_动漫爱好者必会的Scrapy爬虫框架之———— 多页爬取图片的信息...

    ok, 接下来我们要将怎样多页爬取图片的信息,以及如何下载图片. 知识点涉及到: 自动的翻页爬取 多个parse 之间的request 传递 构建图片爬取的通道 さあ!始めようぜ! 首先我们要爬取的网 ...

  3. python爬取动态网页_python爬取动态网页数据,详解

    原理:动态网页,即用js代码实现动态加载数据,就是可以根据用户的行为,自动访问服务器请求数据,重点就是:请求数据,那么怎么用python获取这个数据了? 浏览器请求数据方式:浏览器向服务器的api(例 ...

  4. chrome动态ip python_用Python爬虫爬取动态网页,附带完整代码,有错误欢迎指出!...

    系统环境: 操作系统:Windows8.1专业版 64bit Python:anaconda.Python2.7 Python modules:requests.random.json Backgro ...

  5. Python之网络爬虫(selenium爬取动态网页、爬虫案例分析、哈希算法与RSA加密)

    文章目录 一.selenium爬取动态网页 二.爬虫案例分析 三.哈希hash算法与RSA加密 一.selenium爬取动态网页 1.动态网页认知 爬虫其实就是在模仿浏览器的行为 应对要多次数据的交互 ...

  6. Python爬虫爬取动态网页

    系统环境: 操作系统:Windows8.1专业版 64bit Python:anaconda.Python2.7 Python modules:requests.random.json Backgro ...

  7. 【爬虫】Selenium爬取动态网页的base64图片

    文章简介 Selenium爬取动态网页的base64图片,并解决页面完整加载缓慢,base64字符串的获取和格式转码,一些页面不存在,部分照片无法加载等问题.后附源码. 目录 1,需求 2,环境和使用 ...

  8. java爬虫系列(二)——爬取动态网页

    准备工作 项目地址 网页解析工具地址 启动网页解析器 根据系统选择所需文件 指定端口号启动工具 项目配置 seimi.properties SeimiAgentDemo.java 分析原网页代码 Bo ...

  9. 【爬取动态网页-以黄河水文站数据为例】

    爬取动态网页-以黄河水文站数据为例 一.项目背景 这个项目来源于我的本科毕业设计的一部分,导师让我去搜集这方面的数据. 二.项目过程 1.问题初探 由于我前期跟着MOOC学习了python编程语言,所 ...

最新文章

  1. 网络通信模型(IO模型)
  2. 正则 ?= 和 ?= 用法 以及零宽断言等概念
  3. 南宁师范大学计算机与信息工程学院研究生,南宁师范大学计算机与信息工程学院(专业学位)职业技术教育保研...
  4. linux相关函数,linux学习-信号相关函数
  5. Java 9 –终极功能列表
  6. 计算机上网英语词汇,计算机网络专用英语词汇1500词
  7. 奖金福利高达20亿,华为太太太太太任性了!
  8. 15个带示例的jQuery滚动条插件
  9. 微软 HoloLens 2 的幕后故事
  10. Ubuntu设置终端相对短路径
  11. html 判断为空js,JavaScript判断DIV内容是否为空的方法
  12. 现场取证之流量分析总结
  13. Chromium OS Developer Guide
  14. 第十八届西南科技大学ACM程序设计竞赛(同步赛)
  15. 进程间通信之FIFO
  16. 计算机打表格图,怎么把电脑整个表格截屏,表格太长,还有部(怎么把excle表格截图)...
  17. 移动接入身份认证技术
  18. 【网页截图亲测可用】Linux + python3 + selenium + chrome + chrome-driver 服务器端网页截图
  19. 【UVM基础】3、核心基类和机制
  20. 汽车行业数据防泄露解决方案

热门文章

  1. 如何在 ASP.Net Core 中使用 SignalR
  2. 如何向K8s,Docker-Compose注入镜像Tag
  3. 如何在 ASP.NET Core 中使用 API 分析器
  4. WordPress 已过时?创始人与新架构拥护者开战
  5. dotNetCore操作Redis(含CentOS7哨兵模式部署)
  6. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 1
  7. 揭秘鸿蒙生态背后的DevOps实践
  8. .NET Core IdentityServer4实战 第Ⅳ章-集成密码登陆模式
  9. 通俗易懂,什么是.NET Core以及.NET Core能做什么
  10. 微软XAML Studio - WPF, UWP, Xamarin等技术开发者的福音