我有一个网页:http : //kff.org/womens-health-policy/state-indicator/ultrasound-requirements/#,我需要从该网页中提取表格。
遇到的问题:我一直在使用BeautifulSoup并请求获取url内容。这些方法的问题在于,即使在生成表之前,我也能够获取Web内容。
所以我得到了空表<table> <thead> </ thead> <tbody> </ tbody> </ table>
我的方法:现在,我尝试使用webbrowser.open_new_tab(url)在浏览器中打开url,然后直接从浏览器获取内容。这将使服务器更新表,然后我将能够从页面获取内容。
问题:我不确定如何直接从Web浏览器中获取信息。
现在我在Windows系统上使用Mozilla。
找到最近的链接网站。但是它给出了打开哪些站点而不是内容
还有其他方法可以让表加载到urllib2或beautifulsoup和请求中吗?或者有什么方法可以直接从网页获取加载的内容。
谢谢
要添加到Santiclause答案中,如果要抓取Java脚本填充的数据,则需要执行一些操作。
为此,您可以使用selenium程序包和诸如Firefox或PhantomJS(无头)之类的网络驱动程序来连接到页面,执行脚本并获取数据。
您的案例示例:
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,则应该这样做。您可以通过在检查网站上的元素时检查“网络”选项卡来找到它,这需要一些操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句