ERR_EMPTY_RESPONSE with selenium使用代理(chrome webdriver)



我一直在尝试抓取一些网站,并决定使用代理一段时间,我猜它很好,但现在我得到ERR_EMPTY_RESPONSE相当频繁,每10次左右尝试一次,页面将正确加载,不改变代码,当然。当我没有运行headless并且我得到一个空响应时,我可以点击&;reload&;按钮,页面有时会加载。

这与我使用代理有关,但我真的不明白为什么它有时会工作,为什么它总是给我一个空的响应。

还有其他人遇到过类似的问题吗?

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
PROXY = "35.230.111.164" + ":" + "8888"
webdriver.DesiredCapabilities.CHROME["proxy"] = {
"httpProxy": PROXY,
"ftpProxy": PROXY,
"sslProxy": PROXY,
"noProxy": None,
"proxyType": "MANUAL",
"autodetect": False,
}
options = webdriver.ChromeOptions()
# options.add_argument("--headless")
options.add_argument("--window-size=1920,1080")
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
options.add_argument(f"user-agent={user_agent}")
driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 10)
driver.get(
"https://whatismyipaddress.com/"
)
driver.implicitly_wait(10)
#driver.find_element_by_xpath('//*[@id="footer_tc_privacy_button_2"]').click()

我遇到了代理+ chrome/chromedriver永远现在的问题,我想出的唯一解决方案是试图检测错误并以编程方式重新加载,像这样:

err = driver.find_element_by_css('#main-frame-error .error-code')
# found chrome err! lets reload...
if(err){
driver.get(driver.current_url)
}

最新更新