猿问

Python 3 爬虫切换代理问题

大家好!下面的提问非常小白,可能有很多描述不清楚的 ?。

需求:我有 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
totosspace
浏览 2029回答 1
1回答

pardon110

你想的太简单了,很多情况没有考虑到。如果实在不会写,用scrapy吧,改配置总会吧?
随时随地看视频慕课网APP
我要回答