python爬虫学习之路(4) User Agent和代理IP

如何避免 Python 爬虫被封禁:IP、User-Agent 和代理池管理 摘要: 在爬虫开发中,避免被目标网站封禁需采取多种策略:1) IP代理:通过代理池动态切换IP,分散访问压力,可使用付费代理或爬取免费代理(需验证可用性);2) User-Agent伪装:利用工具随机生成浏览器UA,或动态切换UA列表;3) 请求频率控制:添加随机延时(如1-5秒)模拟人工操作。综合应用代理池、UA伪装及延时请求,可有效降低封禁风险。示例代码展示了Python实现代理切换、UA动态生成及延时请求的方法。 阅读详情

一、为何要设置User Agent

有一些网站不喜欢被爬虫程序访问,所以会检测连接对象,如果是爬虫程序,也就是非人点击访问,它就会不让你继续访问,所以为了要让程序可以正常运行,需要隐藏自己的爬虫程序的身份。此时,我们就可以通过设置User Agent的来达到隐藏身份的目的,User Agent的中文名为用户代理,简称UA。

User Agent存放于Headers中,服务器就是通过查看Headers中的User Agent来判断是谁在访问。在Python中,如果不设置User Agent,程序将使用默认的参数,那么这个User Agent就会有Python的字样,如果服务器检查User Agent,那么没有设置User Agent的Python程序将无法正常访问网站。

二、常见的User Agent

1.Android

Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19
Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
2.Firefox

Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0
3.Google Chrome

Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36
Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19
4.iOS

Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A101a Safari/419.3
上面列举了Andriod、Firefox、Google Chrome、iOS的一些User Agent,直接copy就能用。

三、设置User Agent的方法
想要设置User Agent,有两种方法:
1.在创建Request对象的时候,填入headers参数(包含User Agent信息),这个Headers参数要求为字典;
2.在创建Request对象的时候不添加headers参数,在创建完成之后,使用add_header()的方法,添加headers。

四、IP代理的使用
1.为何使用IP代理
User Agent已经设置好了,但是还应该考虑一个问题,程序的运行速度是很快的,如果我们利用一个爬虫程序在网站爬取东西,一个固定IP的访问频率就会很高,这不符合人为操作的标准,因为人操作不可能在几ms内,进行如此频繁的访问。所以一些网站会设置一个IP访问频率的阈值,如果一个IP访问频率超过这个阈值,说明这个不是人在访问,而是一个爬虫程序。
一个很简单的解决办法就是设置延时,但是这显然不符合爬虫快速爬取信息的目的,所以另一种更好的方法就是使用IP代理。使用代理的步骤:

(1)调用urlib.request.ProxyHandler(),proxies参数为一个字典。
什么是Handler?Handler也叫作处理器,每个handlers知道如何通过特定协议打开URLs,或者如何处理URL打开时的各个方面,例如HTTP重定向或者HTTP cookies。
(2)创建Opener
什么是opener?python在打开一个url链接时,就会使用opener。其实,urllib.request.urlopen()函数实际上是使用的是默认的opener,只不过在这里我们需要定制一个opener来指定handler。
(3)安装Opener
install_opener 用来创建(全局)默认opener,这个表示调用urlopen将使用你安装的opener。

使用install_opener方法之后,会将程序默认的urlopen方法替换掉。也就是说,如果使用install_opener之后,在该文件中,再次调用urlopen会使用自己创建好的opener。如果不想替换掉,只是想临时使用一下,可以使用opener.open(url),这样就不会对程序默认的urlopen有影响。

3.代理IP选取
在写代码之前,先在代理IP网站选好一个IP地址,推荐西刺代理IP。
注意:当然也可以写个正则表达式从网站直接爬取IP
编写代码访问http://ip.chinaz.com/getip.aspx,该网站是测试自己IP为多少的网址,服务器会返回访问者的IP。

from urllib import request


if __name__ == '__main__':
    # 网址
    url = 'http://ip.chinaz.com/getip.aspx'
    # 代理ip
    proxy = {"http": "119.136.145.203:808"}
    # 创建proxyHandler
    proxy_support = request.ProxyHandler(proxy)
    # 创建opener
    opener = request.build_opener(proxy_support)
    # 添加User-Angent
    # opener.add_handlers = [("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36")]
    #安装opener
    request.install_opener(opener)
    # 使用安装好的opener
    # response = opener.open(url)
    response = request.urlopen(url)
    # 获取信息并解码
    html = response.read().decode("utf-8")
    print(html)

这里写图片描述

Python之反爬虫手段(User-Agent,Cookie,Referer,time.sleep(),IP代理池) 现在的爬虫越来越难,各大网站为了预防不间断的网络爬虫,都相应地做出了不同的反爬机制,那么如何能够在不被封IP的情况,尽可能多得爬取数据呢?这里主要介绍到一些通用的反爬措施,虽然不一定适合所有网站,但是大部分网站的爬取,个人认为还是可以的。本文主要介绍到User-Agent,Cookie,Referer,time.sleep()设置睡眠间隔,ProxyPool之IP池的搭建,小伙伴们各取所需! 由于后续爬虫案例都默认自带这些反爬技术,所以这里就统一详细介绍下,后续案例就不再过多涉及,废话不多说,开始展开! 阅读详情

相关推荐

网络爬虫实战(1)-爬取代理ip

而今天我将带领大家爬取网络上免费的代理ip,为以后的学习打下基础,当然也需有的网站可以直接获取下载代理ip,那这篇文章还看不看,答案是当然也需要看的,相当于增加实战经验,或者当别人问你你ip池怎么搞的,网络上下载的这个回答体现不出在练气期程序员的水准,如果你说我是通过我高超的技术网络上爬取下来的,是不是特别有b格啊,哈哈哈哈。发送给谁,相当于你给别人写信,是不是要附上对面的地址,邮递员才能送到啊,而这个就相当于对方的地址,将上面的请求url值赋值给url这个常量。打印出来,可以看看是不是咋们想要的结果。

m0_73249455的博客 1573

python爬虫之浏览器User-Agent大全

爬虫时需要伪造浏览器User-Agent,可以手动准备,也可以用第三方库自动生成。 一.手动准备 这是我从真实的浏览器上复制的User-Agent,即每个版本都是真实存在过的。但不保证我的版本号是连续的,如实际发布了版本号1、2、3,可我从1升级的时候已经发布了3,自动升级时就跳过了2,也就无法记录到版本号2。不过这不影响爬虫,只是如果你想搜集绝对全面的User-Agent的话,即不遗漏每个版本,那我这个手动记录的可能不全。 版本号后面注释中的时间,只是发布当前版本时记录的,不一定代表"这是本月的第一

fj_changing的博客 2万+

Python网络爬虫的反爬策略

网络爬虫的反爬机制是网站保护自身资源的重要手段,而爬虫开发者则需要不断应对这些反爬策略。通过伪装User-Agent、使用代理IP、处理验证码、解析动态加载内容和管理Cookie等技巧,可以有效提高爬虫的成功率和稳定性。然而,在爬取数据时,应遵守网站的使用条款和法律法规,尊重网站的知识产权和隐私政策。

shejizuopin的博客 1789

python爬虫——User-Agent

那么User-Agent到底是什么呢?User-Agent是请求头的一部分。会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。 一、默认User-Agent 1.代码 import requests r = requests.get('https://movie.douban.com/') print(r.text) 2.结果 3.查看默认请求头 import requests r = requests.get('h

小橙子的博客 6782

python3爬虫系列19之反爬随机 User-Agent 和 ip代理池的使用

python3爬虫系列18之随机User-Agent 和ip代理池的使用 我们前面几篇讲了爬虫增速多进程,进程池的用法之类的,爬虫速度加快呢,也会带来一些坏事。 1. 前言 比如随着我们爬虫的速度越来越快,很多时候,有人发现,数据爬不了啦,打印出来一看。 不返回数据,而且还甩一句话 是不是很熟悉啊? 要想想看,人是怎么访问网站的? 发请求,对,那么就会带有 request.headers, 那么...

空空说技术的博客 1万+

深信服AC1000-B1200到手第一步:从开箱到激活上网的保姆级图文指南

本文提供深信服AC1000-B1200企业级行为管理设备的详细开局使用指南,涵盖从开箱验机、物理连接到网络配置、安全加固及设备激活的全流程。通过图文并茂的步骤解析,帮助用户快速完成设备初始化并实现安全上网,特别适合初次接触该设备的网络管理员参考。

weixin_42546392的博客 549

User-Agent大全

1) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36 2) Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko...

ACBC12345的博客 986

模型参考自适应控制(MRAC):让PID参数动态优化

本文深入解析模型参考自适应控制(MRAC)技术,它通过实时调整PID参数,使控制系统能自动适应系统特性变化和外部干扰。文章详细介绍了MRAC的工作原理、数学基础,并提供了用C语言实现的实战代码示例,帮助工程师解决传统PID控制在非线性、时变系统中参数整定繁琐的难题。

tequila的博客 903

担心爬虫UA代理不够用?教你一招屡试不爽的方法!

摘要:爬虫过程中的反爬措施非常重要,其中设置随机 User-Agent 是一项重要的反爬措施,Scrapy 中设置随机 UA 的方式有很多种,有的复杂有的简单,本文就对这...

lsxxx2011的专栏 584

cJSON库用完后内存泄漏?手把手教你正确使用cJSON_Delete和free释放资源

本文深入解析cJSON库的内存管理机制,重点解决使用后的内存泄漏问题。通过详细讲解cJSON_Delete和free的正确使用方法,帮助开发者在处理JSON数据时有效释放资源,避免内存泄漏。特别适用于嵌入式系统和资源受限环境,提升开发效率和系统稳定性。

weixin_30808693的博客 421

Origin2018(汉化版)在使用科学计数法的时候如何将坐标刻度的0.0改成0

文章目录1 问题2 解决方法 1 问题 先看下面这张图,当我使用科学计数法时,纵坐标出现了0.0的字样,这样看起来很不美观。有些期刊还会有要求,不能出现0.0的格式。 图1 那么该怎么将它改成0呢?首先让我们尝试着用Origin自带的属性,看看能不能设置。 2 解决方法 解决方法一: step1: 双击坐标轴,打开坐标轴属性设置。 step2: 在刻度线标签选项中设置左轴的显示 图2 会发现,按照图2的方式改好之后,其它的小数位也全没了,如果但是有些数字就被覆盖了,这显然不是我

qq_40077565的博客 2万+

Python中User-Agent的重要作用及实际应用

User-Agent是HTTP协议中的一个重要字段,用于标识发送请求的客户端信息。在Python中,User-Agent的作用至关重要,它可以影响网络请求的结果和服务器端的响应。将介绍User-Agent在Python中的重要作用,并结合实际案例展示其应用。

Z_suger7的博客 1336

Acute逻辑分析仪TL4134E实战:从触发电平到协议解析的完整避坑指南

本文是一份针对Acute逻辑分析仪TL4134E的实战避坑指南。文章深入解析了触发电平分组、采样率与存储深度权衡、高级触发等核心概念,并提供了混合电压系统测量、eMMC调试内存优化、SPI/I2C/UART协议解析排错等具体配置技巧,帮助硬件工程师和嵌入式开发者高效捕获与分析数字信号,快速定位通信问题。

weixin_29207149的博客 407

Python爬虫伪装,请求头User-Agent池,和代理IP池搭建使用

在使用爬虫的时候,很多网站都有一定的反爬措施,甚至在爬取大量的数据或者频繁地访问该网站多次时还可能面临ip被禁,所以这个时候我们通常就可以找一些代理ip,和不用的浏览器来继续爬虫测试。下面就开始来简单地介绍一下User-Agent池和免费代理ip池。

1万+

[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。......

HowieXue 薛永浩的博客 1万+

基于ESP32的智能厨房控制系统开发

随着智能家居技术的发展,越来越多的家庭开始将传统的厨房设备进行智能化改造,以提高烹饪效率和生活质量。智能厨房控制系统是物联网(IoT)应用的重要组成部分,它将家居设备、传感器和网络结合起来,提供便捷的控制与监测功能,使厨房的烹饪过程更加智能、便捷和安全。基于ESP32的智能厨房控制系统不仅能够实现远程控制和监控,还能实现温度、湿度、烹饪状态的实时反馈,甚至具备智能化的推荐和自动化控制能力。ESP32是一款功能强大、集成度高的嵌入式开发平台,具有Wi-Fi和蓝牙双模通信能力,广泛应用于物联网设备的开发。

2201_76125393的博客 659

Python爬虫---伪装代理(IP和User-Agent)

Python爬虫—伪装代理(IP和User-Agent) 将你的爬虫伪装成浏览器(User-Agent) 让你的爬虫随机代理IP 代入解析 将你的爬虫伪装成浏览器(User-Agent) 导入所需要的包 import random # 用于获取User_Agent from fake_useragent import UserAgent 创建一个可随机返回User-Agent的函数 # 获取随机User_Agent伪装 def get_fake_User_Agent(): # 随机获取

我的博客 5001

STM32CubeMX之emWin移植

“前面两章介绍了SDRAM和LTDC的使用,本篇文章将介绍emWin移植到STM32。”硬件环境:STM32F429IGT6软件环境:STM32CubeMX v5.5.0...

zhang062061的专栏 2827

数据采集爬虫三要素:User-Agent、随机延迟、代理ip

做爬虫的朋友都懂:你刚打开一个页面,还没来得及发第二个请求,服务器已经把你当成了“可疑流量”。403、429、验证码、JS挑战……这些“欢迎仪式”你是不是也经常收到?防爬策略越来越猛,采集工程师越来越秃。

引用原创内容标明出处即可 4051

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python爬虫:制作一个属于自己的IP代理模块

Python爬虫常常会面临反爬虫的措施,比如服务器会检查user-agent、判断某ip请求次数过多等,为什么自己不做出一个专门面对这种情况处理的Python模块呢?

坚持不懈的大白的博客 3508

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python爬虫隐藏ip_Python3网络爬虫之使用User Agent和代理IP隐藏身份

本文介绍了Python3网络爬虫之使用User Agent和代理IP隐藏身份,分享给大家,具体如下:运行平台:WindowsPython版本:Python3.xIDE:Sublime text3一、为何要设置User Agent有一些网站不喜欢被爬虫程序访问,所以会检测连接对象,如果是爬虫程序,也就是非人点击访问,它就会不让你继续访问,所以为了要让程序可以正常运行,需要隐藏自己的爬虫程序的身份。此...

weixin_39845613的博客 731

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

爬虫中的User-Agent和IP代理

在爬虫中使用User-Agent 按照百度百科的解释:User-Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。网站可以通判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,对于爬虫来说,UA就是标明身份的第一层标识。 以谷歌浏览器为例,Chrome的User-Agent为: Mozilla/5.0 (Wind...

南方有乔木的博客 2270

python爬虫之反爬虫(随机user-agent,获取代理ip,检测代理ip可用性)

python爬虫之反爬虫(随机user-agent,获取代理ip,检测代理ip可用性) 目录 随机User-Agent 获取代理ip 检测代理ip可用性    随机User-Agent fake_useragent库,伪装请求头 from fake_useragent import UserAgent ua = UserAgen...

weixin_34220623的博客 2728

Python网络爬虫——User-Agent(用户代理)是什么

User-Agent 即用户代理,简称“UA”,它是一个特殊字符串头。网站服务器通过识别 “UA”来确定用户所使用的操作系统版本、CPU 类型、浏览器版本等信息。而网站服务器则通过判断 UA 来给客户端发送不同的页面。

Itmastergo的博客 2383

Python爬虫被封ip解决方案

在使用 Python 程序进行网络爬虫开发时,可能因以下原因导致被封 IP 或封禁爬虫程序

weixin_44617651的博客 5862

Python3网络爬虫(四):使用User Agent和代理IP隐藏身份

运行平台:Windows Python版本:Python3.x IDE:Sublime text3

Jack-Cui 13万+
上一篇: python爬虫学习之路(3) urllib.error异常
下一篇: python爬虫学习之路(5) 正则表达式
QEcode
博客等级 码龄10年 39粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值