返回顶部
首页 > 资讯 > 精选 >怎么用代码搞定Scrapy随机 User-Agent
  • 527
分享到

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

2023-06-04 08:06:07 527人浏览 八月长安
摘要

今天就跟大家聊聊有关怎么用代码搞定scrapy随机 User-Agent,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。摘要:爬虫过程中的反爬措施非常重要,其中设置随机 User-Ag

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

摘要:爬虫过程中的反爬措施非常重要,其中设置随机 User-Agent 是一项重要的反爬措施,Scrapy 中设置随机 UA 的方式有很多种,有的复杂有的简单,本文就对这些方法进行汇总,提供一种只需要一行代码的设置方式。

最近使用 Scrapy 爬一个网站,遇到了网站反爬的情况,于是开始搜索一些反爬措施,了解到设置随机 UA 来伪装请求头是一种常用的方式,这能够做到一定程度上避免网站直接识别出你是一个爬虫从而封掉你。设置随机 UA 的方法有挺多种,有的需要好多行代码,有的却只需要一行代码就搞定了,接下来就来介绍下。

▌常规设置 UA

首先,说一下常规情况不使用 Scrapy 时的用法,比较方便的方法是利用 fake_useragent包,这个包内置大量的 UA 可以随机替换,这比自己去搜集罗列要方便很多,下面来看一下如何操作。

首先,安装好fake_useragent包,一行代码搞定:

1pip install fake-useragent

然后,就可以测试了:

1from fake_useragent import UserAgent
2ua = UserAgent()
3for i in range(10):
4    print(ua.random)

这里,使用了 ua.random 方法,可以随机生成各种浏览器的 UA,见下图:

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

(放大查看)

如果只想要某一个浏览器的,比如 Chrome ,那可以改成 ua.chrome,再次生成随机 UA 查看一下:

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

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

下面,我们来介绍在 Scrapy 中设置随机 UA 的几种方法。

先新建一个 Project,命名为 wanojia,测试的网站选择为:Http://httpbin.org/get

首先,我们来看一下,如果不添加 UA 会得到什么结果,可以看到显示了scrapy,这样就暴露了我们的爬虫,很容易被封。

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

下面,我们添加上 UA 。

▌直接设置 UA

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

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

1response.request.headers['User-Agent']

▌手动添加 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有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 怎么用代码搞定Scrapy随机 User-Agent

本文链接: https://lsjlt.com/news/237090.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用代码搞定Scrapy随机 User-Agent
    今天就跟大家聊聊有关怎么用代码搞定Scrapy随机 User-Agent,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。摘要:爬虫过程中的反爬措施非常重要,其中设置随机 User-Ag...
    99+
    2023-06-04
  • 使用shell怎么随机定时修改密码
    使用shell怎么随机定时修改密码?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。change_passwd.sh#!/bin/sh/usr/bin/chattr ...
    99+
    2023-06-09
  • JavaScript随机数生成代码怎么写
    在JavaScript中,可以使用Math.random()方法生成一个0到1之间的随机数。可以将这个随机数乘以一个范围的长度,并将...
    99+
    2023-10-12
    JavaScript
  • JavaScript生成随机数的代码怎么写
    今天小编给大家分享一下JavaScript生成随机数的代码怎么写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
    99+
    2024-04-02
  • 怎么编写代码搞定Python中任何线性方程
    这篇文章主要介绍“怎么编写代码搞定Python中任何线性方程”,在日常操作中,相信很多人在怎么编写代码搞定Python中任何线性方程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • 怎么使用vue3生成随机密码
    这篇文章主要介绍“怎么使用vue3生成随机密码”,在日常操作中,相信很多人在怎么使用vue3生成随机密码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用vue3生成随机密码”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-02
  • Android怎么自定义View实现随机数验证码
    本篇内容介绍了“Android怎么自定义View实现随机数验证码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果自定义 View 分类简单...
    99+
    2023-07-02
  • PHP中怎么利用给定的字符串生成随机密码
    这期内容当中小编将会给大家带来有关PHP中怎么利用给定的字符串生成随机密码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。直接上代码:<phpfunction password_genera...
    99+
    2023-06-20
  • 怎么使用java搞定网站登录验证码
    这篇文章主要讲解了“怎么使用java搞定网站登录验证码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用java搞定网站登录验证码”吧!验证码生成本效果是利用easy-captcha工具...
    99+
    2023-07-05
  • 使用Java怎么生成一个随机验证码
    这篇文章将为大家详细讲解有关使用Java怎么生成一个随机验证码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。源代码:RandomGen.java(实现产生验证码功能的类)package ve...
    99+
    2023-05-31
    java ava
  • 怎么用Python实现随机生成图片验证码
    本篇内容主要讲解“怎么用Python实现随机生成图片验证码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python实现随机生成图片验证码”吧!导入模块import random...
    99+
    2023-06-26
  • Shell中怎么创建用户并生成随机密码
    Shell中怎么创建用户并生成随机密码,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。创建随机数的方法:代码如下:1~~~~/dev/urandom在Linux中...
    99+
    2023-06-09
  • Android应用中怎么对随机验证码进行获取
    Android应用中怎么对随机验证码进行获取?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体方法如下: package cn.hk.image; import java....
    99+
    2023-05-31
    android roi
  • 怎么在Android中通过自定义View绘制一个四位数随机码
    怎么在Android中通过自定义View绘制一个四位数随机码?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先在res/values文件夹下建利attrs.xml文件,由于这次...
    99+
    2023-05-30
    android view
  • 怎么用vbs产生的若干个随机数并写入到一个.txt中的代码
    小编给大家分享一下怎么用vbs产生的若干个随机数并写入到一个.txt中的代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:Set a=WScript.C...
    99+
    2023-06-08
  • 怎么使用JS编写随机抽取号码的小程序
    这篇文章主要介绍怎么使用JS编写随机抽取号码的小程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本程序可以实现功能如下:1、在文本框中输入抽号最大值2、点击按钮,开始抽号,随机生成...
    99+
    2024-04-02
  • 怎么调试Cordova应用的JavaScript代码和自定义插件代码
    这篇文章主要讲解了“怎么调试Cordova应用的JavaScript代码和自定义插件代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么调试Cordova应用的JavaScript代码和自...
    99+
    2023-06-05
  • 怎么调用chatGPT实现代码机器人
    这篇文章主要介绍“怎么调用chatGPT实现代码机器人”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么调用chatGPT实现代码机器人”文章能帮助大家解决问题。获取chatGPT登录Token信息...
    99+
    2023-07-04
  • python 定时器具体的使用代码怎么写
    这篇文章给大家介绍python 定时器具体的使用代码怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python 定时器在运行的时候有不少的问题需要我们注意,下面我们就来看看在运行效果上的问题如何解决。 代码如下:...
    99+
    2023-06-17
  • Android代码检查规则Lint怎么自定义与应用
    今天小编给大家分享一下Android代码检查规则Lint怎么自定义与应用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言:...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作