python - 获取页面源作为浏览器在 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 元素可能会阻止这种情况。
解决方案
您可以使用 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)
推荐阅读
- javascript - 在 React 中运行搜索后如何显示“未找到记录”
- ios - Cookie 在停用一段时间后被清除
- azure - 在 Kusto 查询中将列名作为参数传递
- java - 在 Java 中实现 writeBit 方法
- python - Selenium ChromeDriver python 脚本无法再在页面上找到任何元素
- javascript - 如何使用 jQuery 更改 Wordpress 帖子中的多个同名输入元素?
- c# - 更改以不同形式存在的背景颜色
- android - 在flutter android 11中使用File writeAsBytes时出错有没有其他方法可以工作?
- c++ - 为什么程序没有按预期执行?
- javascript - 为什么我的 .php 找不到使用 .js 路径的位图?