一 最基本的User-Agentyan验证
如果通过程序向目标网站发送请求且不设置任何请求参数,服务器得到请求会识别为非人为通过浏览器请求,这种情况下大可能会被浏览器拒绝请求。(请求状态码非200,服务器拒绝访问)
设置请求头headers-UA参数:
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36' }
基本的headersUA参数。
如果我们需要请求大批量的数次,使用同一个浏览器和同一个环境设备,User-Agent基本不会变的。一些网站服务器反爬手段敏感强度高,也会拒绝访问。
在python中可以使用一个第三方库获取UA数值:
进入终端输入: pip install faker.
安装完成后实例对象:
输出结果:
可以看到这些UA代理都是库里随机抽出的,内部收集了大量的用户ua代理,因为我们可以根据不同目标对象使用。
网站 :
'http://httpbin.org/get'
可以查看请求头部信息
此外headers请求参数还有Referer, Cooike。具体作用详见后期文章。
二 根据事实情况设置必要的休眠时间。
在学习开发中,没有效率要求的开发中,设置休眠时间可以是一个防止反爬的方法,像人为操作一样不给服务器短时间带来大量无间断请求,有效蒙蔽时间戳反爬。
导入时间库:import time
time.sleep(秒(num))
程序运行到这里会等待规定的秒数再执行。
三 快速大量的爬取数据。
快速大批量的爬取数据,节省时间,又提高效率。但针对某一网站或服务器,不间断请求会被封禁ip地址,因为大量不间断请求不是人为做出来的,不仅带不来浏览量,也会增加服务器的工作量,严重还会导致一系列严重问题,所以一般的服务器都会设置封禁ip阻止爬虫程序。这时ip被封禁了我们要继续请求就是需要换用其他ip进行、
1.IP是网络与设备之间的联系,通过#.#.#.#: #表明:
这是一个http协议的IP地址
不同网络与同一个设备形成的IP不同,所以可以通过换用其他网络进重新组合IP(IP后的几个参数变动),发送请求可以响应,那么就是可以使用了,但如果还是不可以,服务器拒绝,可能就是IP的前几个重要参数被禁了,这时更换网络IP仍然无法请求.就需要使用其它的IP进行了。
四 代理IP的使用。
当IP被封之后无法操作,就需要用到代理IP
requests模块设置代理IP:
proxies = {
'http': '117.86.24.183:40011', # 键值对形式设置 'https': '106.110.200.153:40023', # https网站协议对应的IP设置 'http': '180.119.95.5:40009',
} # proxies参数中的ip数量有限制
requests.get(url, headers={'User_Agent': UA.user_agent(), proxies=proxies)
设置代理请求IP
IP查询网站:
'http://www.whatismyip.com.tw/' 可以查看一次请求的ip
网站中提供的免费IP大多是短时间测试IP,基本都是过期无效的。所以代理IP也分质量的,需要进行购买。