2013-04-06 2 views
0

저는 Python을 처음 사용합니다. URL을 긁어 모으기위한 모듈을 작성하는 과정에서 파이썬 요청 모듈을 사용하여 얻는 것은 브라우저에서 URL을로드하면 얻을 수있는 것과 다를 수 있다는 것을 알게되었습니다. 이는 페이지에 실행 된 JS 코드가 포함될 수 있고 그 결과 브라우저에 나타나는 모자이기 때문입니다.Python을 사용하여 JavaScript가 포함 된 웹 페이지를 가져옴

내 질문 - 1. 어떻게 이러한 사이트를 처리합니까?

  1. 파이썬이나 다른 모듈은 서버 쪽에서 완전히 정적 페이지 나 페이지를 가져 오는 것으로 제한되어 있습니까?

  2. 페이지를로드하기 위해 Ajax 스타일 쿼리를 수행하는 페이지를 처리하는 방법은 무엇입니까?

아마도이 라이브러리가 없다고 가정하고 혼자서 뭔가해야합니다. 웹킷과 같은 코드를 작성하지 않아도되기를 바랍니다 :)

감사합니다.

답변

0

mechanize과 같은 브라우저를 시뮬레이트하거나 실제로 브라우저를 구동하는 것을 찾을 수 있습니다 (예 : selenium). 자바 스크립트를 실행 한 후 표시되는 HTML을보고해야합니다.

이것은 당신이 셀레늄과 함께해야 할 일을해야하지만, 시간이 지났는데 : HTML을 비교

from selenium import webdriver 

br = WebDriver.Ie() #or .Firefox() or .Chrome() (but not on x64) 
br.get(r'http://google.com') 
html = br.page_source 

, 적어도 다르다 :

from requests import get 
r = get(r'http://google.com') 
print r.content[:100] 
>>><!doctype html><html itemscope="itemscope" itemtype="http://schema.org/WebPage"><head><meta itemprop' 
print html[:100] 
>>><html itemtype="http://schema.org/WebPage" itemscope="itemscope"><head><meta http-equiv="X-UA-Compat 
+0

셀레늄은 엔진에서 렌더링 한 후 웹 페이지 소스를 얻을 수있는 API를 제공합니까? – R11

+0

그게'page_source'가 아닌가요? 아마도 js로 치료되기 전에 어쩌면,하지만 나는 그것을 의심합니다. – TankorSmash

관련 문제