2010-05-14 85 views
0

我有一些html页面。有一个JavaScript可以产生一些内容。我必须从python脚本解析这些内容。我在电脑上保存了文件的副本。有没有办法与'已经生成'html?就像我在打开页面文件后在浏览器中看到的一样。据我所知,我必须使用DOM(也许,xml2dom lib)。使用javascript生成的html

回答

2

在Javascript更改之前或之后,您是否保存了“文件”(网页,我想象)?

如果在“之后”,那么通过Javascript完成一些HTML操作并不重要 - 您可以使用流行的解析器,如lxmlBeautifulSoup来处理您拥有的HTML。

如果“之前”,那么首先你需要让Javascript通过自动化一个真实的浏览器来完成它的工作;为了那个任务,我会推荐SeleniumRC--这会让你回到“之后”的案例;-)。

+0

+1我认为你比我有更好的问题。无论如何,如果有人需要,我会将我的答案留在原地。 – 2010-05-14 18:55:44

+0

是的,'之前'。但是我的脚本应该几乎每分钟都会自动运行。我可以通过SeleniumRC来实现吗? – Ockonal 2010-05-14 19:15:03

+0

@Ockonal,如果你拥有足够强大的机器并拥有大量内存,那么肯定:有了今天最新,最快的浏览器,Javascript运行速度非常快,而且Selenium几乎没有增加任何开销。 – 2010-05-14 20:20:19

0

我认为您可能会对以下情况有一个基本的误解:在JavaScript生成内容(在客户端)时,文档的服务器端处理已经发生。服务器端Python脚本没有直接的方式来访问由JavaScript创建的HTML。基本上,HTML只能在浏览器的DOM中“虚拟”生活。

您必须找到一种方法将该HTML传输到您的Python脚本。最有可能使用Ajax。你会采取的HTML,并将其添加作为参数传递给你的Ajax调用使用jQuery's AJAX functions(请记住,使用POST作为请求方法,这样你就不会得到大小限制的问题。)

一个例子:

$.ajax({ 
    url: "myscript.py", 
    type: "POST", 
    data: { html: your_html_content_here }, 
    success: function(){ 
    alert("sent HTML to python script!"); 
    }});