爬虫中使用代理IP的一些误区 原创
2022-10-17 16:24
作为爬虫工作者在日常工作中使用爬虫多次爬取同一网站时,经常会被网站的IP反爬虫机制给禁掉,为了解决封禁 IP 的问题通常会使用代理IP。但也有一部分人在HTTP代理IP的使用上存在着误解,他们认为使用了代理IP就能解决一切问题,然而实际上代理IP不是万能的,它只是一个工具,如果使用不当,一样会被封IP。
如果是使用的透明代理IP自然会受到限制,但是使用的是高匿名代理则不会,所以在选择代理IP的时候,要注意这一点。还有就是在使用一个代理IP爬取目标网站,被封IP的因素也有很多,比如cookie,比如User Agent等等,或者IP的单次使用频率太高,IP就会被封;当访问目标网站的频率过快时,IP也会被封,因为人类正常访问远远达不到那个频率,自然会被目标网站的反爬虫策略识别。
这样的情况下我们只有尽量地模拟真实用户正常访问,才能最大程度地避免被封IP。而高匿代理IP也不难找,比如亿牛云(www.16yun.cn)提供电信家庭私密高匿代理ip就能满足大家的需求。并且针对代理的使用还提供了专业的文档,如果你的爬虫程序是使用的python,如果购买的是爬虫代理,那么正确的使用代理IP的过程如下:
#! -*- encoding:utf-8 -*- 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
还有其他的语言示例可以选择,有需要的可以在官网去了解
阅读 303 / 评论 0
- 上一篇: 爬取豆瓣读书的详细步骤
- 下一篇: python获取GDP数据