这段代码为每个 url 迭代打开新的 Chrome 窗口,如果我在循环之外使用 WebDriver 实例,那么这不会为每个 url 迭代发送随机代理
chrome_options.add_argument(f"--proxy-server={proxy}")
print(f"Using proxy: {proxy} for URL: {url}")
proxyscrape_premium_http_proxies.txt
38.162.7.130:3128
38.162.15.189:3128
38.162.5.127:3128
38.162.18.151:3128
网址.txt
https://myexternalip.com/raw
https://2ip.io
http://httpbin.org/ip
https://ipv4.webshare.io
应用程序.py
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import random
def rand_proxy():
with open('proxyscrape_premium_http_proxies.txt', 'r') as file:
product_names = file.read().splitlines()
return random.choice(product_names)
with open('urls.txt', 'r') as file:
urls = file.readlines()
for url in urls:
proxy = rand_proxy()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f"--proxy-server={proxy}")
driver = webdriver.Chrome(options=chrome_options)
url = url.strip()
driver.get(url)
print(f"Using proxy: {proxy} for URL: {url}")
time.sleep(10)
要在浏览器会话中更改代理设置,您可以使用 https://github.com/seleniumbase/SeleniumBase 和有线模式 (
wire=True
)。
(请注意,SeleniumBase
driver
包括标准 driver
方法以及新方法。)
from seleniumbase import Driver
driver = Driver(wire=True)
try:
driver.get("https://ipinfo.io/")
driver.sleep(6)
driver.set_wire_proxy("35.185.196.38:3128")
driver.get("https://ipinfo.io/")
driver.sleep(6)
finally:
driver.quit()
set_wire_proxy
可接受的格式:
driver.set_wire_proxy("SERVER:PORT")
driver.set_wire_proxy("socks5://SERVER:PORT")
driver.set_wire_proxy("USERNAME:PASSWORD@SERVER:PORT")
要在列表中选择随机项目,请使用
random.choice(LIST)
:
import random
my_list = ["123", "456", "789"]
print(random.choice(my_list))