python基于scrapy框架的网络爬虫程序反爬虫机制之User-Agent伪装
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python基于scrapy框架的网络爬虫程序反爬虫机制之User-Agent伪装,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2998字,纯文字阅读大概需要5分钟。
内容图文
user agent是指用户代理,简称 UA。
作用:使服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面。但当我们使用爬虫程序时,当我们对一个页面频繁请求时,同一个User-Agent很容易被网站服务器发现我们是一个爬虫机器人,从而被列入黑名单。所以我们需要频繁的更换请求头。
1.在中间件文件(middlewares.py)中配置随机请求头
代码如下:
class?DobanDownloaderMiddleware(object): ? ?? ????def?process_request(self,?request,?spider): ????????#每一个发送到服务器的请求都会先经过此方法,此方法配置好以后需要到setting文件夹中配置 ????????#此处除了手动配置之外,也可以采用python的fake_useragent包(集市面上所有浏览器设备User-Agent于一身,堪称神器的存在)。 #详细使用方法参考:https://www.jianshu.com/p/74bce9140934 MY_USER_AGENT?=?[ ????????????"Mozilla/4.0?(compatible;?MSIE?6.0;?Windows?NT?5.1;?SV1;?AcooBrowser;?.NET?CLR?1.1.4322;?.NET?CLR?2.0.50727)", ????"Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?6.0;?Acoo?Browser;?SLCC1;?.NET?CLR?2.0.50727;?Media?Center?PC?5.0;?.NET?CLR?3.0.04506)", ????"Mozilla/4.0?(compatible;?MSIE?7.0;?AOL?9.5;?AOLBuild?4337.35;?Windows?NT?5.1;?.NET?CLR?1.1.4322;?.NET?CLR?2.0.50727)", ????"Mozilla/5.0?(Windows;?U;?MSIE?9.0;?Windows?NT?9.0;?en-US)", ????"Mozilla/5.0?(compatible;?MSIE?9.0;?Windows?NT?6.1;?Win64;?x64;?Trident/5.0;?.NET?CLR?3.5.30729;?.NET?CLR?3.0.30729;?.NET?CLR?2.0.50727;?Media?Center?PC?6.0)", ????"Mozilla/5.0?(compatible;?MSIE?8.0;?Windows?NT?6.0;?Trident/4.0;?WOW64;?Trident/4.0;?SLCC2;?.NET?CLR?2.0.50727;?.NET?CLR?3.5.30729;?.NET?CLR?3.0.30729;?.NET?CLR?1.0.3705;?.NET?CLR?1.1.4322)", ????"Mozilla/4.0?(compatible;?MSIE?7.0b;?Windows?NT?5.2;?.NET?CLR?1.1.4322;?.NET?CLR?2.0.50727;?InfoPath.2;?.NET?CLR?3.0.04506.30)", ????"Mozilla/5.0?(Windows;?U;?Windows?NT?5.1;?zh-CN)?AppleWebKit/523.15?(KHTML,?like?Gecko,?Safari/419.3)?Arora/0.3?(Change:?287?c9dfb30)", ????"Mozilla/5.0?(X11;?U;?Linux;?en-US)?AppleWebKit/527+?(KHTML,?like?Gecko,?Safari/419.3)?Arora/0.6", ????"Mozilla/5.0?(Windows;?U;?Windows?NT?5.1;?en-US;?rv:1.8.1.2pre)?Gecko/20070215?K-Ninja/2.1.1" ????] ????????user_agent?=?random.choice(MY_USER_AGENT)?#变量名不能有- ????????request.headers['User-Agent']?=?user_agent??#请求头是一个字典 注:一些函数方法不懂的话,除了百度之外可以鼠标光标移动到位置,按F12查看函数源码(至少vscode是这样) ? 2.在setting.py文件中设置如下代码: ? DOWNLOADER_MIDDLEWARES?=?{ ????#数值越小,优先值越高 ???'doBan.middlewares.DobanDownloaderMiddleware':?543, #Do banDownloaderMiddleware是中间件文件中定义的类名 } ? 3.检查是否配置成功 此处可使用此网站:http://httpbin.org/get(此网站会返回请求头(headers的信息) 在spider文件中代码如下: ? (上面导入部分省略,除了必要部分之外可以自定义) class?DobanSpiderSpider(scrapy.Spider): ????name?=?'doBan_spider' ????#?allowed_domains?=?['movie.douban.com'] ????start_urls?=?['http://httpbin.org/get']????def?parse(self,?response): ????????print(response.text)#这时候就可以在vscode自动弹出的shell中查看了 ? ? ? ? ? ? ? ? ? ? ?
内容总结
以上是互联网集市为您收集整理的python基于scrapy框架的网络爬虫程序反爬虫机制之User-Agent伪装全部内容,希望文章能够帮你解决python基于scrapy框架的网络爬虫程序反爬虫机制之User-Agent伪装所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。