我正在尝试使用 Selenium webdriver 在 Python 中构建一个网络爬虫,但是当我从 webdriver 检索网站源代码时,我无法访问我需要的信息。
我认为问题是一旦页面最初从服务器下载,内容就会通过 JavaScript 添加到页面中。当我运行时,browser.page_source我会在添加此内容之前获取页面的源代码。我想知道在添加了 JavaScript 加载的内容后是否可以获取页面的源代码(换句话说,我在使用 Inspect Element 查看页面时看到的内容)。
这是我正在使用的基本 Python 脚本:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.opportunities.auckland.ac.nz")
print(browser.page_source)
当我运行上面的脚本时,我得到了在浏览器中查看页面源时看到的页面的源代码(即,当使用检查元素查看代码时,没有可见的附加内容)。
我尝试过的事情
time.sleep(10)在我访问源时页面未完全加载的情况下添加到各个位置。
get_attribute("innerHTML")在身体上使用。
使用execute_script()让JS运行。
使用execute_script()使JS脚本运行一个接一个。
如果有人能首先告诉我这是否可行,以及它是否为我指明了正确的方向,那就太好了。谢谢。
更新 1
尝试 Piotrek 的解决方案时,我得到以下输出:
Warning (from warnings module):
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/phantomjs/webdriver.py", line 49
warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
<html><head></head><body></body></html>
不幸的是,这似乎不起作用。
相关分类