2012-09-21 78 views
1

使用Chrome DevTools你可以看到一個頁面的DOM樹。有沒有辦法使用python訪問並拉出樹?使用Chrome瀏覽器的DOM樹蟒

+1

爲什麼要使用Python?你可以使用像javascript和jquery這樣的客戶端工具來訪問dom。 – voscausa

+1

@ voscausa - 我想用python解析和分析動態內容。 – root

回答

3

,我發現用selenium.webdriver的最佳方式:

import selenium.webdriver as webdriver 
import lxml.html as lh 
import lxml.html.clean as clean 

browser = webdriver.Chrome() # Get local session of Chrome 
browser.get("http://www.webpage.com") # Load page 

content=browser.page_source 
cleaner=clean.Cleaner() 
content=cleaner.clean_html(content) 
doc=lh.fromstring(content) 

文檔獲取DOM爲lxml.html.HtmlElement

+0

太棒了!在http://stackoverflow.com/questions/43183736/beautifulsoup-does-not-returns-all-data/43191283#43191283中使用 –

1

你用過BeautifulSoup圖書館嗎?本教程的這一部分可能會回答你的問題。 http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html#The解析樹

然後,您還需要導入請求庫。

from BeautifulSoup import BeautifulSoup 
import requests 
url = 'http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html' 
page = requests.get(url) 
soup = BeautifulSoup(page.content) 
print soup 
+0

@ michellesun - 謝謝你的回答,但不幸的是這只是讓我無由JavaScript提供動態內容的HTML。 – root

+0

@root:如果動態生成的內容至關重要,則應將該要求添加到您的問題中。一定要描述它何時生成以及如何生成 - 如果它需要用戶交互才能出現,則會大大擴展其範圍。 – Shog9

+0

@ Shog9 - 問題在於訪問Chrome dom樹。我不覺得有必要詳細說明我的理由,因爲它足夠具體。用BS訪問html頁面與我要求的有所不同。此外,評論中提到了動態內容。 – root