2012-06-15 72 views
4

這裏是頁我讀:這是可能的JavaScript後執行使用python加載頁面?

<html> 
<head> 
<script type="text/javascript"> 
    document.write("Hello World") 
</script> 
</head> 
<body> 
</body> 
</html> 

正如你所看到的,是Hello World在HTML頁面上使用javascript補充說,當我使用HTML解析器,像BeautifulSoup解析它,它不能解析Hello World,我可以解析客戶端真正看到的實際結果....?謝謝。

+0

解析這個微不足道的情況也許是可能的,否則你需要在頁面上運行所有的javascript作爲一個真正的JavaScript引擎來查看結果。 – Esailija

+0

@Ted:你可能想看看這個:http://stackoverflow.com/questions/6025082/headless-browser-for-python-javascript-support-required – hayavuk

回答

3

要正確地表示JavaScript操作後DOM的外觀,您必須實際執行javascript。這必須由具有JavaScript引擎和文檔(而不是文本/標記)表示的文檔(通常是瀏覽器)來完成。

8

我用python編寫web scrapers時碰到類似的問題,我發現Selenium Web Driver與BeautifulSoup結合使用非常有用。該代碼最終看起來是這樣的:

from selenium import webdriver 
browser = webdriver.Firefox() 
browser.get("http://www.yoursite.com") 
soup = BeautifulSoup(browser.page_source, "html.parser") 
... 

硒webdriver的,有功能上也是一個「等到一定的DOM元素已加載」,這使得使用更加簡單太JavaScript元素的時機。

相關問題