爬虫程序使用动态转发的注意事项
亿牛云动态转发代理是一种不同于api获取代理的使用方式,是通过配置固定参进行数据的采集的方式,其中不需要对ip进行管理。在使用过程中需要注意一些使用的事项,列如429
首先我们先在程序里面配置代理
#! -*- encoding:utf-8 -*- import requests import random # 要访问的目标页面 targetUrl = "http:www.sogou.com/" # 要访问的目标HTTPS页面 # targetUrl = "http:www.sogou.com/" # 代理服务器(产品官网 www.16yun.cn) proxyHost = "t.16yun.cn" proxyPort = "31111" # 代理验证信息 proxyUser = "16XYBWYK" proxyPass = "454139" 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
当我们的程序运行后可能会报这样的错误:
429的意思是请求超过代理限制,在这种情况下就需要我们的程序严格按照所开代理的请求数,按照300毫秒为单位进行管理。如果限制之后,还是出现大量429,那就是目标网站识别到了爬虫行为,应该是目标网站返回的错误提示,这时我们就需要优化爬虫策略。
爬虫程序使用动态转发的注意事项
xiaotaomi
会员积分:6520
亿牛云动态转发代理是一种不同于api获取代理的使用方式,是通过配置固定参进行数据的采集的方式,其中不需要对ip进行管理。在使用过程中需要注意一些使用的事项,列如429
首先我们先在程序里面配置代理
#! -*- encoding:utf-8 -*- import requests import random # 要访问的目标页面 targetUrl = "http:www.sogou.com/" # 要访问的目标HTTPS页面 # targetUrl = "http:www.sogou.com/" # 代理服务器(产品官网 www.16yun.cn) proxyHost = "t.16yun.cn" proxyPort = "31111" # 代理验证信息 proxyUser = "16XYBWYK" proxyPass = "454139" 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
当我们的程序运行后可能会报这样的错误:
429的意思是请求超过代理限制,在这种情况下就需要我们的程序严格按照所开代理的请求数,按照300毫秒为单位进行管理。如果限制之后,还是出现大量429,那就是目标网站识别到了爬虫行为,应该是目标网站返回的错误提示,这时我们就需要优化爬虫策略。
21-04-01 17:31
2341
0
回复
暂无评论