获取浏览器在Selenium中显示的页面源



我正在尝试抓取浏览器中看到的一些数据。这是我的代码

from selenium import webdriver
driver = webdriver.Safari()
driver.get('https://www.youtube.com')
print(lol.page_source)

有了这个,我基本上得到了一堆javascript,但我真正想要的是一个html代码。我知道webbot可以通过我的旧电脑上的实验来实现这一点,但是webbot只支持我不想安装的chrome(主要是关于设计的原因)。无论如何,硒是这样做的吗?遇到一些研究Ajax元素可能会阻止这一点。

你可以使用CSS_SELECTOR来换行body"标签。

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
driver.get('https://www.youtube.com')
html = driver.find_element(By.CSS_SELECTOR, "body").text
print(html)

EDIT1:如果你想要标题,你可以用"header"代替"body"

EDIT2:也可以使用通用的CSS选择器"*"

EDIT3:如果你想要纯HTML,它可以使用requests库完成:

from selenium import webdriver
import requests
driver = webdriver.Safari()
driver.get('https://www.youtube.com')
r = requests.get(driver.current_url)
html = r.content
print(html)

最新更新