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

相关推荐

  • 怎么优化JS代码

    技术怎么优化JS代码这篇文章主要讲解了“怎么优化JS代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么优化JS代码”吧!1、字符串的拼接 字符串的拼接在我们开发中会经

    攻略 2021年11月18日
  • SQLServer2012镜像主库挂掉怎么切换到镜像备库

    技术SQLServer2012镜像主库挂掉怎么切换到镜像备库本篇内容介绍了“SQLServer2012镜像主库挂掉怎么切换到镜像备库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学

    攻略 2021年11月8日
  • 水浒传每回概括200字,水浒传25一32回概括200字

    技术水浒传每回概括200字,水浒传25一32回概括200字●第二十五回王婆计啜西门庆
    淫妇药鸩武大郎
    郓哥被王婆打了之后水浒传每回概括200字,去找武大郎,劈头盖脸骂了他一顿。武大郎见他话里有话,请他到酒店里喝酒吃肉,郓

    生活 2021年10月19日
  • 服务器集群容错是什么

    技术服务器集群容错是什么本篇内容主要讲解“服务器集群容错是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“服务器集群容错是什么”吧!集群容错:集群服务调用失败后,服务框架需

    攻略 2021年11月16日
  • 湖北省面积多少平方公里,中国各省面积多少平方公里

    技术湖北省面积多少平方公里,中国各省面积多少平方公里只能到万平方千米,去掉万的数是机密中国各省面积排名1湖北省面积多少平方公里、新疆维吾尔自治区面积166万平方千米;2、西藏自治区面积122.8万平方千米;3、内蒙古自治

    生活 2021年10月28日
  • 跨境独立站有哪些主机可以选择海外服务器

    技术跨境独立站有哪些主机可以选择海外服务器很多电商用户如果要电商独立站的话一般都首选欧美市场,那么如果确定了网站要放在美国机房的话,选择什么样的主机比较合适的,以下几个方案可以供您参考比较共享服务器 大多数人之所以选择共

    礼包 2021年10月19日