怎么用代码搞定Scrapy随机 User-Agent

技术怎么用代码搞定Scrapy随机 User-Agent今天就跟大家聊聊有关怎么用代码搞定Scrapy随机 User-Agent,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可

今天跟大家聊聊如何用代码处理Scrapy随机的User-Agent,可能很多人都不太懂。为了让大家更好的了解,边肖为大家总结了以下内容,希望大家能从这篇文章中有所收获。

摘要:爬行过程中的防爬措施非常重要,其中设置随机用户代理是一项重要的防爬措施。在Scrapy中设置随机UA的方法有很多,有复杂的,也有简单的。本文总结了这些方法,并提供了一种只需要一行代码的设置方式。

最近在用Scrapy爬一个网站的时候,遇到了网站反爬的情况,于是开始搜索一些反爬的措施,了解到设置随机UA来伪装请求头是一种常见的方式,可以防止网站直接把你识别为爬虫,在一定程度上屏蔽你。设置随机UA的方法有很多,有些需要很多行代码,有些只需要一行代码就可以完成。接下来介绍一下。

00-1010首先来说说正常情况下不使用Scrapy时的用法。更方便的方法是使用fake_useragent包,里面内置了大量的UA,可以随机替换。这比自己收集上市方便多了。我们来看看如何操作。

首先,安装fake_useragent包,并获取一行代码:

1 1pipinstallfake-useragent然后,您可以测试:

1 from fake _ user agentimportuser agent

2ua=UserAgent()

3 foriirange(10):

4print(ua.random)这里使用ua.random方法随机生成各种浏览器的ua,如下图所示:

怎么用代码搞定Scrapy随机 User-Agent

(放大)

如果你只想要一个浏览器,比如Chrome,你可以把它改成ua.chrome,再生成一个随机的ua来签出:

怎么用代码搞定Scrapy随机 User-Agent

以上是常规设置随机UA的方法,非常方便。

接下来介绍几种在Scrapy中设置随机UA的方法。

首先,创建一个名为wanojia的新项目,测试的网站是http://httpbin.org/get.

首先,我们来看看如果不添加UA会发生什么。我们可以看到显示的是scrapy,暴露了我们的爬虫,很容易被屏蔽。

怎么用代码搞定Scrapy随机 User-Agent

接下来,我们添加UA。

常规设置 UA

怎么用代码搞定Scrapy随机 User-Agent

第一种方法是直接在主程序中设置UA,然后运行程序。这个网站的UA可以通过下面的命令输出,如上图箭头所示。每个请求将随机生成UA。这个方法比较简单,但是每个请求下的请求都需要设置,不太方便。既然使用了Scrapy,就提供了一个专门设置UA的地方,那么我们来看看如何单独设置UA。

1响应.请求.标头['用户代理']

直接设置 UA

怎么用代码搞定Scrapy随机 User-Agent

第二种方法是在settings.py文件中。

手动添加一些 UA,然后通过 random.choise 方法随机调用,即可生成 UA,这种方便比较麻烦的就是需要自己去找 UA,而且增加了代码行数量。

▌middlewares.py 中设置 UA

第三种方法,是使用 fake-useragent 包,在 middlewares.py 中间件中改写 process_request() 方法,添加以下几行代码即可。

1from fake_useragent import UserAgent
2class RandomUserAgent(object):
3    def process_request(self, request, spider):
4        ua = UserAgent()
5        request.headers['User-Agent'] = ua.random

然后,我们回到 settings.py 文件中调用自定义的 UserAgent,注意这里要先关闭默认的 UA 设置方法才行。

1DOWNLOADER_MIDDLEWARES = {
2    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None, 
3    'wandoujia.middlewares.RandomUserAgent': 543,
4}

可以看到,我们成功得到了随机 UA。

怎么用代码搞定Scrapy随机 User-Agent

▌一行代码设置 UA

可以看到,上面几种方法其实都不太方便,代码量也比较多,有没有更简单的设置方法呢?

有的,只需要一行代码就搞定,利用一款名为  scrapy-fake-useragent 的包。

先贴一下该包的官方网址:https://pypi.org/project/scrapy-fake-useragent/,使用方法非常简单,安装好然后使用就行了。

执行下面的命令进行安装,然后在 settings.py 中启用随机 UA 设置命令就可以了,非常简单省事。

1pip install scrapy-fake-useragent
1DOWNLOADER_MIDDLEWARES = {
2    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None, # 关闭默认方法
3    'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400, # 开启
4}

我们输出一下 UA 和网页 Response,可以看到成功输出了结果。

怎么用代码搞定Scrapy随机 User-Agent

以上就是 Scrapy 中设置随机 UA 的几种方法,推荐最后一种方法,即安装 scrapy-fake-useragent 库,然后在 settings 中添加下面这一行代码即可:

1'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400,

另外,反爬措施除了设置随机 UA 以外,还有一种非常重要的措施是设置随机 IP。

看完上述内容,你们对怎么用代码搞定Scrapy随机 User-Agent有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/133804.html

(0)

相关推荐

  • springsession和普通session区别(springsession配置sessionname)

    技术spring-session自定义序列化方法是什么本篇内容介绍了“spring-session自定义序列化方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处

    攻略 2021年12月23日
  • 如何理解Document对象的属性和方法

    技术如何理解Document对象的属性和方法如何理解Document对象的属性和方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一个文档对象模型或者说

    攻略 2021年11月17日
  • prometheus SQL汇总

    技术prometheus SQL汇总 prometheus SQL汇总由于自己写一些prometheus sql告警规则会比较耗时,所以这里从腾讯云的云原生监控和prometheus operator中

    礼包 2021年11月22日
  • 什么是InnoDB存储引擎

    技术什么是InnoDB存储引擎这篇文章主要介绍“什么是InnoDB存储引擎”,在日常操作中,相信很多人在什么是InnoDB存储引擎问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是Inn

    攻略 2021年10月28日
  • 传输层协议与路由器

    技术传输层协议与路由器 传输层协议与路由器1、 TCP协议:
    面向连接的,可靠的进程到进程通信的协议
    TCP提供全双工服务
    2、UDP协议:
    无连接的不可靠的协议
    效率高
    3、TCP报文段U R G :

    礼包 2021年12月2日
  • 衣服起球怎么快速去除,洗衣服时沾上许多毛毛怎么处理

    技术衣服起球怎么快速去除,洗衣服时沾上许多毛毛怎么处理洗衣服时沾上许多毛毛怎么处理?这个问题分两个方面来回答。第一衣服起球怎么快速去除,洗衣服时沾上许多毛毛怎么处理,最简单实用的,就是用透明胶带,把毛毛粘掉。还可以等衣服

    生活 2021年10月22日