如何确保请求是从旋转IP发出的?

我正在研究scrapy,其中我使用了旋转IP和随机更改UserAgent的概念, 但是,我不确定发出的请求是来自其他IP还是来自本地计算机的IP?

我想做的是:

每个请求都通过中间件的“ process_request(self,request,spider)”方法时, 我已经制定了从免费代理API中随机获取代理IP并将其写入文件的逻辑,然后 从文件中读取随机IP,将其添加到列表中,然后从列表中获取随机IP,然后使用键“ http_proxy”将其添加到meta中。

以下是我目前用于轮换IP的逻辑:

    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'] = random_ip

我应该使用'http_proxy,'proxy'吗? ,我已经进行了搜索,但是找不到在请求中添加IP的正确方法?

是否有办法知道,我发出的每个请求都是来自特定的代理IP,而不是来自本地IP?如果是,那么轮流抓取IP的正确方法是什么?

theresa88520 回答:如何确保请求是从旋转IP发出的?

要检查与您的请求相关联的服务器的IP,请将一些请求发送到https://httpbin.org/ip并从响应中检查IP。

本文链接:https://www.f2er.com/3103040.html

大家都在问