我正在尝试抓取浏览器中看到的一些数据。这是我的代码
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)