代理使用过程中Keep-Alive保持IP不变
在使用爬虫代理的过程中,由于该产品是自动转发代理,按照每个http请求随机分配一个代理ip的模式进行转发,会导致多个Session的请求ip不一致,如果目标网站进行了判断会按照爬虫限制请求,尤其是一些反爬较多的网站,会出现大量的请求错误。
在使用过程中,通过为requests.session()进行对象锁定,能够让所有的Session保持相同的外网IP,从而快速进行数据采集。注意代理产品的IP有效时间,在代理IP到期之前,必须结束所有的请求,才能保证Session的完整性。另外需要分析目标网站的数据请求,如果需要可以在外网IP的同时,进行cookie的设置。以我最近的项目代理使用部分如下:
#! -- encoding:utf-8 --
import requests
import random
import requests.adapters
# 要访问的目标页面
targetUrlList = [
"https://httpbin.org/ip",
"https://httpbin.org/headers",
"https://httpbin.org/user-agent",
]
# 代理服务器(产品官网 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,
}
# 访问三次网站,使用相同的Session(keep-alive),均能够保持相同的外网IP
s = requests.session()
# 设置cookie
# cookie_dict = {"JSESSION":"123456789"}
# cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
# s.cookies = cookies
for i in range(3):
for url in targetUrlList:
r = s.get(url, proxies=proxies)
print r.text
代理使用过程中Keep-Alive保持IP不变
xiaotaomi
会员积分:6520
在使用爬虫代理的过程中,由于该产品是自动转发代理,按照每个http请求随机分配一个代理ip的模式进行转发,会导致多个Session的请求ip不一致,如果目标网站进行了判断会按照爬虫限制请求,尤其是一些反爬较多的网站,会出现大量的请求错误。
在使用过程中,通过为requests.session()进行对象锁定,能够让所有的Session保持相同的外网IP,从而快速进行数据采集。注意代理产品的IP有效时间,在代理IP到期之前,必须结束所有的请求,才能保证Session的完整性。另外需要分析目标网站的数据请求,如果需要可以在外网IP的同时,进行cookie的设置。以我最近的项目代理使用部分如下:
#! -- encoding:utf-8 --
import requests
import random
import requests.adapters
# 要访问的目标页面
targetUrlList = [
"https://httpbin.org/ip",
"https://httpbin.org/headers",
"https://httpbin.org/user-agent",
]
# 代理服务器(产品官网 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,
}
# 访问三次网站,使用相同的Session(keep-alive),均能够保持相同的外网IP
s = requests.session()
# 设置cookie
# cookie_dict = {"JSESSION":"123456789"}
# cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
# s.cookies = cookies
for i in range(3):
for url in targetUrlList:
r = s.get(url, proxies=proxies)
print r.text
20-12-09 16:59
745
0
回复
暂无评论