Javascript 从DOM解析HTML(不是静态HTML)

Javascript 从DOM解析HTML(不是静态HTML),javascript,html,html-parsing,beautifulsoup,Javascript,Html,Html Parsing,Beautifulsoup,尝试从DOM解析HTML数据时,当我使用Chrome的开发工具时,我可以在控制台中看到这些数据。当我在本地将页面保存为HTML并搜索目标数据时,找不到它。我已经阅读了一些关于静态HTML文件是如何被浏览器接收的,以及Javascript如何以不同的方式呈现它 具体示例:Google“nba”,结果包括页面顶部的一个表格,该表格中嵌套了当天的所有预定比赛,如果保存此页面,HTML文件不包含标记。试图用Python使用BeautifulSoup4解析这张游戏表。要完全以编程方式完成这项工作,您需要使

尝试从DOM解析HTML数据时,当我使用Chrome的开发工具时,我可以在控制台中看到这些数据。当我在本地将页面保存为HTML并搜索目标数据时,找不到它。我已经阅读了一些关于静态HTML文件是如何被浏览器接收的,以及Javascript如何以不同的方式呈现它


具体示例:Google“nba”,结果包括页面顶部的一个表格,该表格中嵌套了当天的所有预定比赛,如果保存此页面,HTML文件不包含
标记。试图用Python使用BeautifulSoup4解析这张游戏表。

要完全以编程方式完成这项工作,您需要使用类似于真实浏览器的JavaScript执行程序。可以让这更容易


否则,您可以使用浏览器的内置开发工具将当前DOM状态保存为HTML。

我认为您无法让Chrome以简单的方式保存当前DOM状态。IIRC Firefox可以做到这一点,您可以使用web inspector将DOM复制为HTML,方法是右键单击某个元素并将其保存到文件中。您也可以使用驱动真实浏览器(从而支持Javascript/AJAX)的工具来进行屏幕抓取,而不是让BeautifulSoup4对保存的文件进行操作。WATIR和friends for Ruby以及PhantomJS就是这样工作的。你也可以寻找一个合适的API来直接获取你想要的数据,而不是截屏。你可以编写一个简单的浏览器插件来实现这一点。这也将使解析数据变得容易,因为您可以使用DOM方法直接从页面中获取内容。@millimoose,谢谢您提供的信息,正如Matt猜测的那样,我正在尝试以编程方式进行此操作。API数据提供程序无法工作,因为我只是将NBA作为学习HTML解析的示例。目标是完全以编程方式配置ghost.py,并使用以下测试代码:
from ghost import ghost=ghost()页,resources=ghost.open('http://www.google.ca/#output=search&q=nba')打印页面。但我没有看到任何需要解析的HTML内容,是否缺少某些内容?可能是因为在使用httpresource对象时遇到了一些困难。我可以看到dict包含URL、标题、回复和http_状态。我猜我必须以某种方式提取回复,并以某种方式将其转换为HTML数据?多亏了这些帮助,我现在有了一个字符串,在JS对其进行操作之前看起来像HTML(就像我从浏览器中保存它),但仍然不是我试图解析的内容(比如在Chrome的DOM检查器中)。我知道我必须使用ghost.evaluate执行JS,但不确定脚本参数使用什么。