python网络爬虫实战-selenium 反爬虫技术

header

options = Options()
options.add_argument("user-agent=Mozilla/5.0 ... Chrome/120.0 Safari/537.36")

代理IP

options.add_argument("--proxy-server=http://你的代理IP:端口")

例如 :

# 代理IP列表.
proxy_list = ['ip1:port1', 'ip2:port2', 'ip3:port3', ...]

# 配置Chrome选项.
Firefox_options = Options()
Firefox_options.add_argument('--proxy-server={}'.format(proxy_list[0]))

# 循环尝试不同的代理IP.
for proxy in proxy_list:
    try:
        # 创建WebDriver实例.
        browser = webdriver.Firefox(options=Firefox_options)
        
        # 进行爬取操作
        # ...
        
        # 如果成功执行爬取操作,跳出循环.
        break # 这很重要,不然会一直重复换ip执行同一个爬虫.
    
    except # 建议添加时间超出机制. 
        
    except WebDriverException as e:
        # 处理代理IP失败的情况.
        print('Proxy IP {} failed. Trying another IP.'.format(proxy))
        
        # 切换到下一个代理IP.
        Firefox_options = Options()
        Firefox_options.add_argument('--proxy-server={}'.format(proxy))

# 关闭browser.
browser.close()