使用 web 驱动程序从 python 中的源页面获取所有文本
Posted
技术标签:
【中文标题】使用 web 驱动程序从 python 中的源页面获取所有文本【英文标题】:Using web driver to get all text from a source page in python 【发布时间】:2016-12-19 23:32:44 【问题描述】:我正在使用 selenium webdriver (firefox) 从网站上抓取一些数据。我刚刚发现打开网页比打开该网页的源代码要慢。换句话说,去'www.google.com'
比去'view-source:www.google.com'
花费的时间要长得多
所以我想知道是否可以使用 webdriver 从源页面而不是普通页面获取所有文本。
我尝试将 driver.page_source 用于源页面,但它返回了一些我不想要的混乱。
【问题讨论】:
【参考方案1】:如果您只需要源代码,请使用requests。用 pip 安装:
pip install requests
然后像这样使用它:
import requests
r = requests.get("http://google.com/")
# r.content, r.text, r.json(), r.status can be used
有关高级用法,请参阅上面的文档。
注意:如果您需要解析 html,请使用 BeautifulSoup 并将其传递给 r.content
。
【讨论】:
是的,但我必须使用网络驱动程序,因为我需要手动通过 rechaptcha 检查。 This 应该为您提供获取源代码的选项。此外,为了优化加载速度,您可以禁用像 here 这样的图像。 @user3182260 为了通过验证码检查,您可能需要渲染页面,而不仅仅是下载源代码。您可以尝试 PhantomJS 而不是 Selenium + 浏览器。或者,它可能会在其他浏览器中渲染得更快。以上是关于使用 web 驱动程序从 python 中的源页面获取所有文本的主要内容,如果未能解决你的问题,请参考以下文章
从一页打印html不会显示所有带有python和urllib2的源页面[重复]
此页面正在尝试从 sslforfree 的 ssl 之后从未经身份验证的源加载脚本
在 Flutter 中 - 从 Web 浏览器中的 PayPal 完成交易页面返回后,如何将用户推送到应用程序中的“谢谢”页面