怎么用代码搞定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)

相关推荐

  • Python文本预处理的方法是什么

    技术Python文本预处理的方法是什么本篇内容介绍了“Python文本预处理的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年10月25日
  • jQuery过滤

    技术jQuery过滤 jQuery过滤!DOCTYPE html
    html
    headmeta charset="UTF-8"title15_筛选_过滤/title
    /headbody
    ulliAAAAA

    礼包 2021年11月18日
  • spring boot进行单元测试(springboot如何写单元测试)

    技术Spring Boot如何做单元测试本篇内容介绍了“Spring Boot如何做单元测试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅

    攻略 2021年12月23日
  • Visual Studio 2005 SP1如何安装

    技术Visual Studio 2005 SP1如何安装小编给大家分享一下Visual Studio 2005 SP1如何安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获

    攻略 2021年11月25日
  • 如何理解对Java的异常

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

    攻略 2021年10月23日
  • 《LeetCode刷题笔记》Day1——数组

    技术《LeetCode刷题笔记》Day1——数组 《LeetCode刷题笔记》Day1——数组------------恢复内容开始------------
    二分查找
    只要是顺序数组,都可以考虑用一下二分

    礼包 2021年12月14日