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

相关推荐

  • 玩具(Toy)

    技术玩具(Toy) 玩具(Toy)清华OJ——数据结构与算法实验(中国石油大学)玩具(Toy)Description
    ZC God is best at logical reasoning. One d

    礼包 2021年11月27日
  • 兄弟造句两种意思造句,一个词语有两个意思,造句

    技术兄弟造句两种意思造句,一个词语有两个意思,造句一兄弟造句两种意思造句、手腕  1、手和臂连接的部分。
    举例:那用圆润的手腕,遮着太阳,一对黑大的眼睛,向我注视的,不是S是谁?
    2、手段,伎俩。
    举例:他作梦也想

    生活 2021年10月25日
  • 几何平均,什么是算术平均值和几何平均值

    技术几何平均,什么是算术平均值和几何平均值算术平均数(Arithmetic mean)是表征数据集中趋势的一个统计指标。 它是一组数据之和,除以这组数据之个/项数。算术平均数在统计学上的优点,就是它较中位数、众数更少受到

    生活 2021年10月20日
  • mysql中存储过程和函数(mysql中什么是存储过程有几种类型)

    技术mysql存储过程与存储函数的区别有哪些这篇文章主要讲解了“mysql存储过程与存储函数的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql存储过程与

    攻略 2021年12月14日
  • java方法引用有什么用(java引用方式有哪些)

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

    攻略 2021年12月23日
  • Jenkins执行远程Windows批处理遇到的权限问题有哪些

    技术Jenkins执行远程Windows批处理遇到的权限问题有哪些这篇文章给大家分享的是有关Jenkins执行远程Windows批处理遇到的权限问题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来

    攻略 2021年11月23日