Python requests模块破解反爬虫

requests模块 反爬虫

您好,接下来我将为您带来几种常见的python requests模块,在模拟请求时做的破解反爬虫逻辑和代码实现。

1.UserAgent
很多网站都会进行headers头部里的UserAgent验证,但是很多小伙伴不知道是,python为我们提供了一个便捷的UserAgen 第三方模块,它会为我们的请求自动配置UserAgent,接下来请看代码。

from fake_useragent import UserAgent
ua = UserAgent()
headers = {
	#ua.random 表示的时 随机生成一个User-Agent,这样的话我们就能有很多个 User-Agent 来使用,
     #就不用再担心 被封ip了。
	"User-Agent": ua.random,
    "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "Accept-Language" : "zh-CN,zh;q=0.9",
    "Accept-Encoding" : "gzip, deflate, br",
    "DNT" : "1",
    "Connection" : "cloes"
}

2.IP代理池
IP代理池也是一个很不错的破解反爬虫的技术,ip代理池很多时候都是用买来的高隐匿ip,我为大家带来的是 自己平时维护的可用性较高的ip,来实现的ip代理池。

"""
    因为,我的ip数据是存在mysql中的,我每次都会在取出来之前,
    去访问一次百度的网站,以此来换取code状态是否是大于200 小于300,
    来判断自己的免费ip是否被封了。
    真正的核心代码是 proxies={"HTTP": proxy_url},它就实现了 更换访问
    ip
  """
#判断爬取的IP是否能用
def Ip_judge(proxy_type,ip,port):
    http_url = "http://www.baidu.com"
    proxy_url = "{0}://{1}:{2}".format(proxy_type,ip, port)
    try:
        response = requests.get(http_url, proxies={"HTTP": proxy_url})
        code = response.status_code
        if code >= 200 and code < 300:
            print("该%s可以使用"%(ip),code)
            # UpdModifys(ip)
            return True
        else:
            UpdModifys(ip)
            print("%s不能使用"%(ip),code)
            return  False
    except Exception as e:
        print("访问%s出错...")
        return False
  1. 下载限速
    下载限速也是很常见的不被封的ip的办法,但是很多小伙伴在代码实现的时候都会忽略它,但是我还是希望小伙伴们 能够重视它!!。
#python的requests模块进行下载带宽限制,进行现在速度限制,避免拉爆服务器。
#开启requests的stream=True就可以进行渐进式下载,然后再适当的sleep一下。
#就可以减少下载带宽,限制下载速度了。
requests.get(http_url,stream=True)
  1. 验证码破解
    验证码的话,我提议直接对接大码平台就行了。不要想着自己写代码实现,因为这个实现起来成本很高的。具体代码实现的话 各位小伙伴只能自行百度大码平台了,它们都有demo的。
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值