应对反爬之前先懂什么是网站反爬

简介: 什么是网站反爬,应对反爬有哪些解决措施

爬虫的出现是大数据时代的必然产物,是各行各业数据分析必不可少的存在。爬虫就像一个虫子密密麻麻地爬行到每一个角落获取数据,虫子或许无害,但总是不受欢迎的。
因为爬虫技术造成的大量IP访问网站侵占带宽资源、以及用户隐私和知识产权等危害,很多互联网企业都会花大力气进行“反爬虫”。比如你的爬虫会遭遇被网站封IP、比如各种奇怪的验证码、userAgent访问限制、各种动态加载、post请求参数动态变化、禁止页面调试等都有可能出现这些都是常见的反爬方式。但是上有政策下有对策,爬虫也有相对应的反爬虫措施,比如通过使用大量优质爬虫代理ip来解决ip被限制问题,通过登陆破解各种验证码,添加随机userAgent突破访问限制等等。
应对反爬虫措施的主要思路就是尽可能的去模拟浏览器,浏览器在如何操作,代码中就如何去实现,比如请求头User-agent,这是个很常见的,不做过多阐述,如下,这是我访问某某网站的,然后图上标注的就是user-agent,在这里的User-Agent可以使用多个随机的,意思就是假如你请求20次,你可以自己构造多个不同的User-Agent随机使用一次不重样的,防止过于频繁,这也是常见的方式,具体使用如下:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'}

res = requests.get(url='https://www.baidu.com/', headers=headers)

`再比如通过限制ip的操作,如果目标网站限制了ip的访问频率,这时就需要使用代理ip去不停的更换,ip的选择也需要看业务网站对ip的要求是否高,像一些大型电商类的网站,不仅对ip质量要求严,对ip池的需求也大,这种情况一般需要通过购物代理服务才能满足,代理商有大量高质量的ip池,如果自己搭建那成本会很大。代理商的选择也很多,比如口碑出在爬虫行业里很出圈的亿牛云代理等。代理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
相关文章
|
安全 Shell Android开发
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
1041 0
|
30天前
|
供应链 监控 API
推荐几个好用的电商API接口(淘宝天猫丨京东1688商品详情数据接口)
本文推荐淘宝、京东、1688等电商平台官方商品详情API,涵盖功能、优势及Python调用示例,助力开发者高效实现价格监控、库存管理与数据分析,附使用注意事项,助你合规快速集成。
238 0
|
数据采集 前端开发 开发者
滑动拼图验证码的原理和破解方法~
滑动拼图验证码的原理和破解方法~
3644 0
滑动拼图验证码的原理和破解方法~
|
7月前
|
数据采集 监控 网络协议
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
785 40
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
|
数据采集 Web App开发 搜索推荐
突破目标网站的反爬虫机制:Selenium策略分析
突破目标网站的反爬虫机制:Selenium策略分析
|
Python
python接收和发送数据
【4月更文挑战第5天】本教程介绍了网络编程中服务器如何接收和发送数据。在Python socket编程中,使用`send`或`sendall`发送数据,其中`send`可能需循环调用来发送大量数据,而`sendall`会自动处理分片问题。接收数据则通过`recv`方法,注意其可能返回部分数据,需多次调用保证数据完整性。还要关注数据编码、异常处理等细节,确保网络通信的稳定可靠。
398 10
|
机器学习/深度学习 算法 数据挖掘
机器学习中的监督学习与非监督学习
在机器学习领域,算法主要分为两大类:监督学习(Supervised Learning)和非监督学习(Unsupervised Learning)。这两种方法在数据处理和问题解决方面各有特点和应用场景。本文将详细介绍监督学习与非监督学习的基本概念、区别以及它们的常见应用。
888 0
|
数据采集
在爬虫过程中,如何避免被封禁 IP 地址?
在爬虫过程中,如何避免被封禁 IP 地址?
582 0
阿里云软件著作权申请多少钱一个?
阿里云软件著作权申请费用从319.20元/件起,提供普通与优享登记,以及顾问和安心服务,价格至2200元/件不等。服务差异包括1v1服务、退款政策等。软著转让和升级均为359.1元/件。详情见阿里云官网。
812 0
阿里云软件著作权申请多少钱一个?