2012-03-08 99 views
2

我想獲取網頁的HTML內容,但大部分內容都是由javascript生成的。如何獲得用javascript生成的HTML?

是否可以得到這個生成的HTML(使用python,如果posible)?

+0

您是否控制了生成HTML的JavaScript?在這種情況下,實現它的一種方法是通過AJAX調用將HTML作爲字符串傳遞給服務器,但是做這件事的原因是什麼? – 2012-03-08 14:02:34

+0

你可以通過javascript來獲取HTML內容 – Chibuzo 2012-03-08 14:08:03

+1

爲什麼downvotes?對於甚至不知道從哪裏開始的人來說,這是一個很好的問題。 [通過用蟒JavaScript的產生刮HTML]的 – 2012-03-08 14:13:55

回答

3

我知道,從你的服務器做的唯一方法是運行在實際的瀏覽器引擎的網頁,將解析HTML,建立正常的DOM環境,在網頁上運行的JavaScript,然後到達成DOM引擎並從body標籤中獲取innerHTML。

這可以通過發射了Chrome瀏覽器與Python中的適當的URL,然後使用Chrome插件的頁面已完成初始化本身並傳達回你的Python後獲取動態生成HTML來完成。

0

如果大部分內容都是由Javascript生成的,那麼Javascript可能會進行ajax調用來檢索內容。您可以從Python應用程序調用這些服務器端腳本。

請檢查它是否違反網站的條款,並獲得許可。

2

結帳Selenium。它有一個Python驅動程序,這可能是你正在尋找的東西。

+0

1硒允許評估對JavaScript的它已加載後的頁面。你可以使用'$('body')。html()'來獲得主體內容的副本。 – 2012-03-08 14:12:56

0

您可以使用Safari在沒有Python或任何腳本的情況下執行此操作。

看到我對類似問題的回答here

+1

我不認爲這是一個有效的解決方案。在我看來,OP希望能夠實現自動化的一般解決方案,即一旦準備好,它們就不需要任何用戶交互。迄今給出的答案似乎證實了這一點。 – andr 2013-02-22 04:08:10

相關問題