两个绕过网站反爬机制的方式

简介: 两个绕过网站反爬机制的方式

在日常爬取网站的时候,我们经常会遇到一个问题,就是很多网站上都部署了反爬虫机制,当服务器检测到一段时间内同一个 IP 持续密集的访问网站,则将其判定为爬虫程序,在一段时间内不允许该 IP 地址访问服务器。
如果平时没什么事儿的话,可以写个延迟函数,每爬一次随机歇个几秒钟,这样可以很有效的降低访问密度,从而避开反爬机制。但是,这样的话太浪费时间了,几万条数据可能要爬一整天。对于一些公司业务来说是需要更加有效率的爬取数据,所以遇到这种情况可以使用代理 IP 和随机 UA(User-Agent)。说白了就是伪装爬虫,假装不同的人使用不同的浏览器在访问网站。
关于随机UA,即 User-Agent ,使用它可以将我们的爬虫伪装成浏览器,让对方以为是真人在使用浏览器访问,从而骗过目标网站的反爬机制。但是使用固定的 UA 去爬也是会有问题的,你想嘛,假如你发现最近几个小时内来访问的几万个用户,用的都是同一个浏览器,你还会认为对面是真人吗?不封它封谁!
所以,为了让我们的爬虫更像真人在使用,我们不仅要为它设置 UA,还要使用随机 UA(让对方服务器开心的以为有好多的用户在访问呢)。

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/548.39 (KHTML, like Gecko) Chrome/104.0.234 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/598.45 (KHTML, like Gecko) Chrome/103.0.2647 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/585.54 (KHTML, like Gecko) Chrome/92.0.2667 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/585.52 (KHTML, like Gecko) Chrome/93.0.2005 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.70
Mozilla/5.0 (Windows NT 9_1_2; Win64; x64) AppleWebKit/600.48 (KHTML, like Gecko) Chrome/95.0.1729 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.99 Vulcan/0.3.0.1 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.74 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.78
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.182.400 QQBrowser/11.3.5182.400
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.168.400 QQBrowser/11.0.5120.400
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) tcs_app/3.7.3 Chrome/94.0.4606.81 TCS/3.7.3 TTTCS/3.7.3 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.39
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.105 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4482.0 Safari/537.36 Edg/92.0.874.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3.1 Safari/605.1.15
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/567.48 (KHTML, like Gecko) Chrome/93.0.1941 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/550.45 (KHTML, like Gecko) Chrome/88.0.960 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.42 (KHTML, like Gecko) Chrome/93.0.2048 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x6309001c) XWEB/6500
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36 (compatible; SMTBot/1.0; http://www.similartech.com/smtbot)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.343.0 Safari/533``
`  
关于代理IP,这个就是大家熟悉的不能再熟悉的问题了,要想高效的获取数据肯定是需要高质量的代理,这个只能通过购买代理服务,我想作为爬虫大家肯定也用过不少的代理了,好的坏的都有一定的了解。如果没有什么好的代理可以选择的,这里推荐一家老代理商,亿牛云代理,已经合作了很多年,代理稳定性和质量一直都很好,售后也是很不错的。尤其推荐他们家的爬虫隧道代理,不知道隧道代理怎么使用的,这里可以简单的示例大家参考下。
示例中使用的方法亲测可用,但是代码并非全部源码,不保证代码可以直接复制粘贴使用,建议大家理解原理之后,根据自己的爬虫项目需要进行相应的调整或直和商家联系提供完整代码示例。
import requests
import random

# 要访问的目标页面
targetUrl = "http://httpbin.org/ip"

# 要访问的目标HTTPS页面
# targetUrl = "https://httpbin.org/ip"

# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"

# 代理验证信息
proxyUser = "username"
proxyPass = "password"

proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
    "host" : proxyHost,
    "port" : proxyPort,
    "user" : proxyUser,
    "pass" : proxyPass,
}

# 设置 http和https访问都是用HTTP代理
proxies = {
    "http"  : proxyMeta,
    "https" : proxyMeta,
}


#  设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}



resp = requests.get(targetUrl, proxies=proxies, headers=headers)

print resp.status_code
print resp.text
相关文章
|
数据采集 Web App开发 测试技术
如何避免反爬虫程序检测到爬虫行为?
这段内容介绍了几种避免被反爬虫程序检测的方法:通过调整请求频率并遵循网站规则来模拟自然访问;通过设置合理的User-Agent和其他请求头信息来伪装请求;利用代理IP和分布式架构来管理IP地址;以及采用Selenium等工具模拟人类的浏览行为,如随机点击和滚动页面,使爬虫行为更加逼真。这些技巧有助于降低被目标网站识别的风险。
|
数据采集 机器学习/深度学习 前端开发
反爬虫措施
【8月更文挑战第12天】
1017 3
|
4月前
|
自然语言处理 数据可视化 API
解锁 Qwen3 的Agent能力,CookBook来咯!
Qwen3系列模型具备强大Agent能力,但从模型到Agent仍存技术难题。为此,我们推出基于Qwen-Agent框架的3个CookBook示例,展示如何让Qwen3丝滑调用MCP Server全过程。不论是本地部署还是API调用模型,开发者均可通过Qwen-Agent完成复杂任务。CookBook包括自然语言驱动数据库操作、云端高德API地理服务及文档转思维导图等功能。Qwen-Agent封装了工具调用模板和解析器,原生支持MCP协议,大幅降低开发成本。欢迎体验并反馈。
452 0
|
12月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
1785 1
|
9月前
|
设计模式 算法 架构师
软考软件设计师:是否值得报考?详尽分析与建议
软考软件设计师是我国IT领域权威认证之一,涵盖软件设计、系统分析、架构设计等多方面知识。
389 1
|
程序员 索引 Python
python中常见的错误
【5月更文挑战第15天】
207 1
|
缓存 Linux
linux性能分析之内存分析(free,vmstat,top,ps,pmap等工具使用介绍)
这些工具可以帮助你监视系统的内存使用情况、识别内存泄漏、找到高内存消耗的进程等。根据具体的问题和需求,你可以选择使用其中一个或多个工具来进行内存性能分析。注意,内存分析通常需要综合考虑多个指标和工具的输出,以便更好地理解系统的行为并采取相应的优化措施。
708 6
|
监控 Python
系统中出现僵尸进程排查过程
记一次僵尸进程过多的排查过程
769 0
|
JavaScript 前端开发 Java
用VSCode搭建Vue.js开发环境及Vue.js第一个应用
用VSCode搭建Vue.js开发环境及Vue.js第一个应用
2974 0
|
算法 安全 大数据
Tiktok养号为什么要用静态IP代理?有什么优势?
TikTok作为当今最受欢迎的社交媒体应用之一,吸引了无数的用户和创作者,然而,对于一些用户来说,维护和发展自己的TikTok账号可能并不容易。
Tiktok养号为什么要用静态IP代理?有什么优势?