《python爬虫练习》之随机的User-Agent请求头

news/2024/11/28 13:50:00/

1. 背景:

大数据时代,互联网上很多的数据需要被爬取然后进行筛选,就可以被我们所利用,在这个过程中反爬技术也应运而生,互联网之间的攻防战一直在不断升级。那么我们在爬取数据的时候,自然需要进行伪装,让爬取数据的服务器认为我们是合法的访问。 有大佬封装了一个请求头的库,我们可以通过语句进行随机的访问,我就随机记录一下,可能我平时爬的数据比较少,多为单个UserAgent,有浏览器也有手机但是没有使用过这种随机的,但是作为一个爬虫类的知识点,我觉得可以记录一下。

2.使用fake_useragent库函数

from fake_useragent import UserAgent
UA = UserAgent()
print(UA.random)

3.根据浏览器来选择随机的数据

from fake_useragent import UserAgent
UA = UserAgent()print(UA.chrome)
print(UA.ie)
print(UA.firefox)
print(UA.opera)
print(UA.safari)

这样根据不同的浏览器就可以生成不同的数据,当然这里每次都是随机的生成的。我们在写爬虫的时候如果为了严谨可以适当的这样写。当然对等的来讲,还有一个请求头中很重要的点就是IP,虽然我对于网络攻击不是非常了解,但是常见的DDOS攻击不就是对服务器进行多线程的访问,从而使服务器宕机,服务器可以通过黑白名单来进行ip地址的封杀,爬虫类似也会被识别ip从而使爬虫任务失败,这个时候黑客会做一些“肉鸡”,绑架一些主机或者说孪生出很多的ip地址去访问,我们也是一样的通过代理的形式使用不同的IP可以防止被封杀的可能性。

4.IP池

有付费的也有开源的项目,都可以试试,我后面有时间可能会单独出一期说明吧。以下,是一些开源的IP池。

  1. scrapy-proxy-pool: https://github.com/hyan15/scrapy-proxy-pool
  2. ipproxytool: https://github.com/brain-snail/ipproxytool
  3. ProxyPool: https://github.com/jhao104/proxy_pool
  4. PythonProxyPool: https://github.com/henson/PythonProxyPool
  5. proxy-pool: https://github.com/Python3WebSpider/proxy-pool
  6. CrawlerProxyPool: https://github.com/Python3WebSpider/CrawlerProxyPool
  7. SimpleProxyPool: https://github.com/kjnfff/SimpleProxyPool
  8. ProxySpider: https://github.com/Python3WebSpider/ProxySpider
  9. XX-net: https://github.com/XX-net/XX-Net

http://www.ppmy.cn/news/63020.html

相关文章

软件工程的基础

软件危机软件工程软件工程是将系统化的,严格约束的,可量化的方法应用于软件的开发,运行和维护,将工程应用于软件。 软件工程的三个要素:方法,工具,过程软件的生命周期,是指从从软…

Databend 开源周报第 92 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 在 WHERE 子句中…

每天一道算法练习题--Day22 第一章 --算法专题 --- ----------最大公约数

关于最大公约数有专门的研究。 而在 LeetCode 中虽然没有直接让你求解最大公约数的题目。但是却有一些间接需要你求解最大公约数的题目。 如何求最大公约数? 定义法 def GCD(a: int, b: int) -> int:smaller min(a, b)while smaller:if a % smaller 0 and b …

基于Linux系统在线安装RabbitMQ

一、前言 二、Erlang下载安装 三、RabbitMQ下载安装 三、RabbitMQ Web界面管理 一、前言 本次安装使用的操作系统是Linux centOS7。 二、Erlang下载安装 在确定了RabbitMQ版本号后,先下载安装Erlang环境。下面演示操作过程: Erlang下载链接&#…

centOS7忘记登录密码该如何重新修改登录密码

文章目录 前言一、重新修改登录密码1.1、第一步1.2、第二步1.3、第三步1.4、第四步1.5、第五步1.6、第六步1.7、第七步1.8、第八步 前言 忘记密码并不可怕,只要学会方法,密码随时都可以找回。 一、重新修改登录密码 1.1、第一步 当打开centOS7之后忘记…

OpenCV中的图像处理3.7-3.8(五)边缘检测、图像金字塔

目录 3.7 边缘检测目标理论OpenCV中的Canny边缘检测其他资源练习 3.8 图像金字塔目标理论使用金字塔进行图像混合其他资源 翻译及二次校对:cvtutorials.com 编辑者:廿瓶鲸(和鲸社区Siby团队成员) 3.7 边缘检测 目标 在本章中&a…

【C++从0到王者】第二站:类和对象(中)构造函数与析构函数

文章目录 一、C的六个默认成员函数二、构造函数和析构函数1.构造函数①构造函数的概念②构造函数的特性 2.析构函数①析构函数的概念②析构函数的特性 3.构造函数的其他特性4.构造函数总结5.一些不写构造函数的样例6.析构函数的其他特性 一、C的六个默认成员函数 如果一个类中什…

通过SSH隧道安全消费Kafka数据

一.背景 由于我们有个业务在阿里云部署了Kafka,但是想直接在本地IDC机房服务器直接通过公网消费Kafka进行业务处理。这个本来也不是什么难事,阿里云把9092默认端口打开运行访问即可,也不不值得再写这篇博客了。 这个事情让人特别关注的一个主…