【发布时间】:2020-06-10 09:34:02
【问题描述】:
我在 python 3.7.2 上使用 Selenium 从 9gagscrape 用于学校项目。
我在 MacOS 上运行 chrome 80.0.3987.122。 我的 chromedriver 版本是为 80 版提供的。 下面的代码是我如何使用我的驱动程序:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options as c_opt
options = c_opt()
options.headless = True
driver = webdriver.Chrome(executable_path=PATH_TO_DRIVER, chrome_options=options)
driver.get('https://www.9gag.com'))
with open('source.html', 'w') as f:
f.write(driver.page_source)
昨天一切正常。我将运行此代码并打开源文件并查看前几篇 9gag 文章。从今天早上开始,我的源结果显示加载图形,好像它没有完成加载 javascript。
我知道这不是网站的问题,因为我使用无头 Firefox 驱动程序和非无头 chrome 驱动程序再次尝试,一切都按预期工作。
据我所知,驱动程序没有显示任何错误。
我的头号嫌疑人是 chrome。我想也许它以某种方式更新了,硒或驱动程序不知道如何处理它。我真的需要使用 headless,因为没有它我不得不专注于 chrome 窗口(这可能是一个 mac 问题,但仍然如此)。
有人遇到过这种情况吗?
更新
我发现我的问题仅在我访问特定类别时才会出现,例如 https://9gag.com/funny。所以我从那里保存了输出并将其加载到 chrome 上并得到以下内容:
headless chrome 似乎陷入了验证码,无法继续加载页面。这怎么可能现在才开始发生,有什么可以做的吗?我们如何解释 geckodriver for firefox 以某种方式克服了这个问题(它有自己的问题,但至少它会加载页面)?
【问题讨论】:
标签: python selenium google-chrome web-scraping selenium-chromedriver