Python 如何确保请求是由旋转IP发出的?
我正在研究scrapy,在那里我使用了一个轮换IP和随机更改用户代理的概念, 但是,我不确定发出的请求是来自不同的IP,还是来自本地机器的IP 我想做的是: 当每个请求通过中间件的“process_request(self、request、spider)”方法时, 我从免费代理API中随机抽取代理IP,将其写入文件,然后 从文件中读取随机IP,将其附加到列表中,并从列表中获取随机IP,然后使用键“http_proxy”将其附加到meta 以下是我目前用于旋转IP的逻辑:Python 如何确保请求是由旋转IP发出的?,python,python-3.x,web-scraping,scrapy,ip,Python,Python 3.x,Web Scraping,Scrapy,Ip,我正在研究scrapy,在那里我使用了一个轮换IP和随机更改用户代理的概念, 但是,我不确定发出的请求是来自不同的IP,还是来自本地机器的IP 我想做的是: 当每个请求通过中间件的“process_request(self、request、spider)”方法时, 我从免费代理API中随机抽取代理IP,将其写入文件,然后 从文件中读取随机IP,将其附加到列表中,并从列表中获取随机IP,然后使用键“http_proxy”将其附加到meta 以下是我目前用于旋转IP的逻辑: def proc
def process_request(self, request, spider):
proxy_list = []
with open(PROXY_LIST_PATH) as fp:
while True:
line = fp.readline()
if not line:
break
proxy_list.append(line.strip().replace('"',''))
time_list=[1,2,3,4,5,6,7,8,9,10]
random_time_delay = random.choice(time_list)
time.sleep(random_time_delay)
random_ip = random.choice(proxy_list)
request.meta['http_proxy'] = random_ip
#request.meta['proxy'] = random_ip
print("\nHeaders:",request.headers)
print("\nRandom Proxyyyyy - ",random_ip
我不确定在meta中设置随机IP是否正确:
request.meta['proxy']=随机ip
我是否应该使用“http_proxy”,“proxy”,我已经搜索过了,但找不到在请求中添加IP的正确方法
有没有办法知道,我发出的每个请求都来自特定的代理IP而不是本地IP?如果是,在scrapy中旋转IP的正确方法是什么?要检查与您的请求相关联的服务器的IP,请发送一些请求并从响应中检查IP。要检查与您的请求相关联的服务器的IP,请发送一些请求并从响应中检查IP。测试代码,通过向
https://api.ipify.org?format=json
。除非您计划动态添加代理,否则请在文本文件上使用列表。request.meta['proxy']=random_ip
是正确的,我已经这么做了很多年:)您通过向https://api.ipify.org?format=json
。除非您计划动态添加代理,否则请在文本文件中使用列表。request.meta['proxy']=random\u ip
是正确的,我已经这么做了很多年:)