2015-04-02 54 views
3

我環顧四周,只找到了呈現HTML網址的解決方案。然而,我需要一種方法來呈現一個網頁(我已經有了,而且有JavaScript)以適當的HTML。如何在python中將JavaScript HTML呈現爲HTML?

旺旺: 網頁(使用JavaScript)---> HTML

不:網址 - >網頁(使用JavaScript)---> HTML

我無法弄清楚如何使其他代碼以我想要的方式工作。

這是我用的是呈現的URL代碼: http://webscraping.com/blog/Scraping-JavaScript-webpages-with-webkit/

爲了清楚起見,上面的代碼需要有由JavaScript渲染頁面的某些部分的網頁的URL,所以如果我刮的頁面通常使用說urllib2然後我不會得到所有的鏈接等等,在JavaScript後呈現。

但是我希望能夠抓取頁面,再次用urllib2說,然後渲染該頁面並獲取結果HTML。 (不同於上面的代碼,因爲它需要一個URL,因爲它的參數

任何幫助表示讚賞,感謝球員:)

+0

我找不到你想要的東西。也許你可以舉一個例子來說明你的意思是「將網頁呈現給合適的HTML」。你想要真正的DOM嗎?你想要文本的HTML嗎?當你「將網頁饋入瀏覽器」時(即用瀏覽器打開這個文本文件),渲染可以完成,所以目前還不清楚你想要實現的還沒有被瀏覽器完成的東西。 – 2015-04-02 04:20:05

+0

現在你已經更清楚了 - 我將使用Selenium Web Driver。你有沒有考慮過?如果你給出了'urllib2'代碼的更具體的例子,那麼我可能會用相應的Selenium代碼來引用它。 – 2015-04-02 04:36:00

+0

現在完全不清楚你想要什麼:「我想要這個部分,但是像第一個例子一樣」 - 但是第一個例子沒有做到這一點。它只是在評論中說:「我想呈現文本並獲得純HTML」。那麼你想呈現的URL或不?如果您首先使用'urllib2'將URL中的數據讀取到文件中,它們會產生什麼不同?無論哪種情況,您都必須在某個時間發送HTTP請求。您可以將文本文件提供給Selenium(或任何其他刮取實用程序),但它不會與直接使用URL不同。 – 2015-04-02 04:56:13

回答

5

您可以pip install selenium在命令行,然後運行是這樣的:。

from selenium import webdriver 
from urllib2 import urlopen 

url = 'http://www.google.com' 
file_name = 'C:/Users/Desktop/test.txt' 

conn = urlopen(url) 
data = conn.read() 
conn.close() 

file = open(file_name,'wt') 
file.write(data) 
file.close() 

browser = webdriver.Firefox() 
browser.get('file:///'+file_name) 
html = browser.page_source 
browser.quit() 
+0

這正是我想要的,謝謝:) – user3928006 2015-04-02 07:24:35

+0

@ user3928006:不客氣:) – 2015-04-02 07:25:16

+0

我碰到另一個問題,但是,有沒有更方便的地方我可以問你一些問題? – user3928006 2015-04-02 07:25:48