2010-05-14 119 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!"); 
    }});