在 Python 中使用代理的错误 运行 Selenium Webdriver
Error running Selenium Webdriver with a proxy in Python
我用 Selenium Python 测试了一个从网页检索信息的脚本。它有效,至少在找到我的 IP 之前是这样。我想尝试使用代理。我尝试了以下两种选择。
第一种方式:
PROXY = "176.31.68.252:20213"
webdriver.DesiredCapabilities.CHROME['proxy'] = {
"httpProxy": PROXY,
"ftpProxy": PROXY,
"sslProxy": PROXY,
"noProxy": None,
"proxyType": "MANUAL",
"class": "org.openqa.selenium.Proxy",
"autodetect": False
}
url = 'https://www.ufficiocamerale.it/'
driver = webdriver.Chrome(desired_capabilities=webdriver.DesiredCapabilities.CHROME)
wait = WebDriverWait(driver, 20)
driver.get(url)
# rest of the code
第二种方式:
PROXY = "176.31.68.252:20213"
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=https://%s' % PROXY)
url = 'https://www.ufficiocamerale.it/'
driver = webdriver.Chrome(chrome_options=chrome_options)
wait = WebDriverWait(driver, 20)
driver.get(url)
# rest of the code
但在第一种情况下网页 returns 错误 ERR_EMPTY_RESPONSE 而在第二种情况下 returns 错误 ERR_TIMED_OUT.
我在在线免费代理列表中找到了代理。
这是我选择的代理的问题吗?还是代码问题?
在这些情况下,标准的处理方式是什么?
Google 限制
由于代理,您收到一条错误消息,
Google 阻止所有免费代理的
代理蜘蛛
我还编写了一个代理蜘蛛程序来测试所有代理服务器:https://free-proxy-list.net/
代码:https://github.com/xtekky/proxy-spider
设置自己的代理
这里有一个 article 告诉您如何创建自己的代理服务器。
使用代理设置 Selenium
试试这个脚本:
Github代码:https://github.com/xtekky/selenium-tutorials/tree/main/selenium%20proxy
from selenium import webdriver
from selenium.webdriver.common.proxy import ProxyType, Proxy #proxy module
import time
proxy_ip = 'ip:port' #get a free proxy from the websites in the description
#setting up proxy
proxy =Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = proxy_ip
proxy.ssl_proxy = proxy_ip
#linking proxy and setting up driver
capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)
driver = webdriver.Chrome('CHROMEDRIVER PATH', desired_capabilities=capabilities) # replace the chromedriver path
#loading test page
driver.get('https://httpbin.org/ip')
time.sleep(8)
driver.quit()
我用 Selenium Python 测试了一个从网页检索信息的脚本。它有效,至少在找到我的 IP 之前是这样。我想尝试使用代理。我尝试了以下两种选择。
第一种方式:
PROXY = "176.31.68.252:20213"
webdriver.DesiredCapabilities.CHROME['proxy'] = {
"httpProxy": PROXY,
"ftpProxy": PROXY,
"sslProxy": PROXY,
"noProxy": None,
"proxyType": "MANUAL",
"class": "org.openqa.selenium.Proxy",
"autodetect": False
}
url = 'https://www.ufficiocamerale.it/'
driver = webdriver.Chrome(desired_capabilities=webdriver.DesiredCapabilities.CHROME)
wait = WebDriverWait(driver, 20)
driver.get(url)
# rest of the code
第二种方式:
PROXY = "176.31.68.252:20213"
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=https://%s' % PROXY)
url = 'https://www.ufficiocamerale.it/'
driver = webdriver.Chrome(chrome_options=chrome_options)
wait = WebDriverWait(driver, 20)
driver.get(url)
# rest of the code
但在第一种情况下网页 returns 错误 ERR_EMPTY_RESPONSE 而在第二种情况下 returns 错误 ERR_TIMED_OUT.
我在在线免费代理列表中找到了代理。
这是我选择的代理的问题吗?还是代码问题? 在这些情况下,标准的处理方式是什么?
Google 限制
由于代理,您收到一条错误消息,
Google 阻止所有免费代理的
代理蜘蛛
我还编写了一个代理蜘蛛程序来测试所有代理服务器:https://free-proxy-list.net/
代码:https://github.com/xtekky/proxy-spider
设置自己的代理
这里有一个 article 告诉您如何创建自己的代理服务器。
使用代理设置 Selenium
试试这个脚本:
Github代码:https://github.com/xtekky/selenium-tutorials/tree/main/selenium%20proxy
from selenium import webdriver
from selenium.webdriver.common.proxy import ProxyType, Proxy #proxy module
import time
proxy_ip = 'ip:port' #get a free proxy from the websites in the description
#setting up proxy
proxy =Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = proxy_ip
proxy.ssl_proxy = proxy_ip
#linking proxy and setting up driver
capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)
driver = webdriver.Chrome('CHROMEDRIVER PATH', desired_capabilities=capabilities) # replace the chromedriver path
#loading test page
driver.get('https://httpbin.org/ip')
time.sleep(8)
driver.quit()