Scrapy突破反爬虫限制

本文介绍了在Scrapy框架下如何应对反爬虫策略,包括通过downloadmiddleware随机更换user-agent,实现IP代理池,禁用或使用Cookie,自动限速以及自定义spider的settings。讲解了随机UserAgent的实现,代理IP池的维护,以及自动限速和自定义settings的方法,以提升爬虫的生存能力。
摘要由CSDN通过智能技术生成
爬虫与反爬虫的对抗过程

在这里插入图片描述
在这里插入图片描述
对抗过程:
在这里插入图片描述

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__(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值