以前有人问过这个问题,但我已经搜索并尝试过,但仍然无法正常工作。我是 Selenium 的初学者。
看看:https://finance.yahoo.com/quote/FB
我正在尝试通过网络抓取“推荐评级”,在本例中,在撰写本文时为 2。我已经尝试过:
driver.get('https://finance.yahoo.com/quote/FB')
time.sleep(10)
rating = driver.find_element_by_css_selector('#Col2-4-QuoteModule-Proxy > div > section > div > div > div')
print(rating.text)
...这不会给我错误,但也不会打印任何文本。我也尝试过使用 xpath、class_name 等。相反,我尝试了:
source = driver.page_source
print(source)
这也不起作用,我只是获取没有动态生成内容的实际源代码。当我在 Chrome 中单击“查看源代码”时,它不存在。我尝试用 chrome 保存网页。没用。
然后我发现,如果我保存整个网页,包括图像和 css 文件以及所有内容,源代码与我只保存 HTML 的源代码不同。
当我使用 Chrome 保存整个网页时,我得到的 HTML 文件确实包含我需要的信息,起初我想使用 pyautogui 来对每个网页进行 Ctrl + S,但必须有另一种方法。
我需要的信息显然就在 html 代码中,但我如何在不下载整个网页的情况下获取它?
最佳答案
试试这个来执行动态生成的内容(JavaScript):
driver.execute_script("return document.body.innerHTML")
关于python - 使用 python Selenium 获取动态生成的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55239995/