首页 > 解决方案 > 获取页面源作为浏览器在 Selenium 中显示

问题描述

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

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


有了这个,我基本上得到了一堆 javascript,但我真正想要的是 HTMLesque 代码。我知道 webbot 可以通过在我的旧 PC 上进行实验来实现这一点,但是 webbot 只支持我不想安装的 chrome(主要是关于设计的原因)。无论如何用硒做这个?

遇到一些研究 Ajax 元素可能会阻止这种情况。

标签: pythonselenium

解决方案


您可以使用 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:如果你想要标题,你可以"body""header".

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)


推荐阅读