大家好!下面的提问非常小白,可能有很多描述不清楚的 ?。
需求:我有 10 个付费的 HTTP 代理,希望可以一个 IP 抓取 100 次内容切换一次 IP(IP 的调取已经写好了)
问题:不明白如何切换 IP
实现效果(代码在最下面):每抓取 100 次后,cycle100 的值到达 99(起始值为 0),触发切换代理 IP 的代码。切换完成后接下来的 100 次爬取都是切换了的代理 IP。
我的思路(小白思路):
1、关闭当前浏览器,然后用以下代码重新开一个(结果不行,会多开好几个浏览器):
browser = webdriver.Chrome(options=chrome_options)
2、如下这种方式,只能打开 .get(' XXXXXXXX, proxies = proxies') 中的 XXXXXX 网址,希望实现切换一次 IP 则接下来的浏览器的所有打开的新网页都是用新 IP 访问的。
import request sproxy = '173.208.46.152:128' proxies = { 'http': 'http://' + proxy, 'https': 'https://' + proxy, } try: response = requests.get('http://httpbin.org/get', proxies = proxies) print(response.text) except Exception as e: print('Error', q.args)
大致的代码写成下面这个样子(不可使用):
cycle100 = 0 # 循环 100 次更换一次 IP def switching(): global cycle100 cycle100 += 1 if cycle100 == 99: print("该代理已经运行 100 次") time.sleep(1) print("顺序获取代理") PROXY = auto_proxy() # 调用函数,获取 IP 地址 print("Proxy: " + PROXY) chrome_options = webdriver.ChromeOptions() print("设置代理") chrome_options.add_argument('--proxy-server=%s' % PROXY) browser = webdriver.Chrome(options=chrome_options) browser.get("https://httpbin.org/get") time.sleep(4) cycle100 = 0
pardon110