2012-09-21 6 views
1

Chrome DevTools를 사용하면 페이지의 DOM 트리를 볼 수 있습니다. 거기에 액세스하고 파이썬을 사용하여 해당 트리를 꺼내 방법이 있습니까?Python으로 Chrome DOM 트리에 액세스

+1

왜 파이썬을 사용해야와 DOM을 얻는다? javascript 및 jquery와 같은 클라이언트 측 도구를 사용하여 dom에 액세스 할 수 있습니다. – voscausa

+1

@ voscausa - 저는 파이썬으로 동적 인 내용을 분석하고 분석하려고합니다. – 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) 

문서가 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 - 답변 해 주셔서 감사합니다.하지만 불행히도 이것은 자바 스크립트가 제공하는 동적 콘텐츠가없는 HTML 만 가져옵니다. – root

+0

@root : 동적으로 생성 된 콘텐츠가 중요한 경우 해당 요구 사항을 질문에 추가해야합니다. 생성시기와 방법을 설명하십시오. 사용자 상호 작용을 요구하면 표시 범위가 확장됩니다. – Shog9

+0

@ Shog9 - Chrome dom 트리에 액세스하는 것에 대한 질문이있었습니다. 그 이유를 충분히 설명 할 필요가 없다고 생각했습니다. 학사와 html 페이지에 액세스하는 것은 내가 요청한 것과 다소 다르다. 게다가, 동적 인 내용은 논평에서 언급되었다. – root

관련 문제