python - 如何使用python从网络浏览器获取内容?

标签 python web-scraping python-webbrowser

我有一个网页: http://kff.org/womens-health-policy/state-indicator/ultrasound-requirements/# 我需要从此网页中提取表格。

遇到的问题:我一直在使用 BeautifulSoup 并请求获取 url 内容。这些方法的问题是我什至在生成表格之前就能够获取 Web 内容。

所以我得到空表 <表> <头> < body >

我的方法:现在我尝试在浏览器中使用打开 url webbrowser.open_new_tab(url) 然后直接从浏览器获取内容。这将使服务器更新表格,然后我将能够从页面获取内容。

问题:我不确定如何直接从 Web 浏览器获取信息。

现在我在 Windows 系统上使用 Mozilla。

找到最近的链接 website Link .但它给出了哪些网站被打开,而不是内容

有没有其他方法可以让表加载到 urllib2 或 beautifulsoup 和 requests 中?或者有什么方法可以直接从网页中获取加载的内容。

谢谢

最佳答案

要添加到 Santiclause 答案中,如果你想抓取 java 脚本填充的数据,你需要一些东西来执行它。

为此,您可以使用 selenium 包和 webdriver,例如 Firefox 或 PhantomJS( headless )连接到页面,执行脚本并获取数据。

您的案例示例:

from selenium import webdriver
driver = webdriver.Firefox() # You can replace this with other web drivers
driver.get("http://kff.org/womens-health-policy/state-indicator/ultrasound-requirements/#")
source = driver.page_source # Here is your populated data.
driver.quit() # don't forget to quit the driver!

当然,如果您可以像用户 Santiclause 提到的那样访问直接 json,您应该这样做。您可以在检查网站上的元素时通过检查网络选项卡找到它,这需要一些尝试。

关于python - 如何使用python从网络浏览器获取内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314422/

相关文章:

python - 将交互式 python 中的默认 repr 从builtins.repr 更改为 reprlib.repr

python - Paramiko stdout.readlines()太慢

python - 我想使用 python 将从波形文件读取的数据转换为字节数组

javascript - 如何在Python中下载点击播放音频文件

python - GET 请求在 Flask 中不起作用

python:如何在线程与队列之间共享一个sqlite连接?

java - jsoup 提取标签中元素的值

java - 我应该如何将功能划分为 Java 类?

python-3.x - 将 Web 浏览器窗口添加到 Tkinter 窗口

Python - 打开网站并发送 cookie