python爬虫基本反爬

一 最基本的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也分质量的,需要进行购买。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值