爬虫与反爬虫的对抗过程
对抗过程:
scrapy 架构分析
组件组成:
运作流程:
通过downloadmiddleware随机更换user-agent
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等
查看scrapy中useragent源码:
可以发现,默认的user_agent是Scrapy,如果我们不重新设置,很容易被识别为爬虫。
这里我们用到的是fake-useragent,随机获取UA。
github地址:https://github.com/hellysmile/fake-useragent
from fake_useragent import UserAgent
ua = UserAgent()
ua.random #获取随机UA
就这么几行简单的代码,我们就可以获取随机的UA。
下面我们就开始在下载器中间件中实现随机更换user-agent
首先安装fake-useragent:
pip install fake-useragent
在middlewares中新建一个RandomUserAgentMiddlware:
class RandomUserAgentMiddlware(object):
#随机更换user-agent
def __init__(