내 문제에 대한 정보는 here 및 here으로 보였습니다. 운이 없었습니다.urllib2의 데이터가 Safari의 웹 검사기보다
Safari의 웹 검사기에서와 같이 웹 페이지의 소스를 가져 오는 데 사용되는 파이썬 코드를 만들었습니다. 그러나 저는 애플리케이션과 Safari의 Web Inspector에서 다른 코드를 얻었습니다.
#!/usr/bin/python
import urllib2
# headers
hdr = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.28.10 (KHTML, like Gecko) Version/6.0.3 Safari/536.28.10',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Cache-Control': 'max-age=0'}
# request data
req = urllib2.Request("https://www.google.com/#q=rainbow&safe=active", headers=hdr)
# try to get data
try:
page = urllib2.urlopen(req)
print page.info()
except urllib2.HTTPError, e:
print e.fp.read()
content = page.read()
#print content
print content
그리고 헤더는 웹 Inspector에서 무엇을 일치 : 여기 내 코드는 지금까지입니다
반환 코드는 구글 검색하지만, 다른 "무지개".
내 파이썬 :
http://paste.ubuntu.com/6270549/
웹 관리자 :
http://paste.ubuntu.com/6270606/
지금까지 내가 아는 한, 내 코드는 유비쿼터스 }catch(e){gbar_._DumpException(e)}
라인의 많은 수없는 것으로 보인다 Web Inspector 코드에 있습니다. 또한 Web Inspector 코드에는 235 행이 있지만 내 코드에는 78 행만 있습니다. 내 코드가 자바 스크립트 또는 웹 페이지의 다른 부분을 모두 차지하지 못한다는 의미입니까? 내 코드에서 웹 관리자와 동일한 데이터를 가져 오려면 어떻게해야합니까?
https://www.google.com/search?q=rainbow&safe=active
대신 : 두 번째 링크는 구글의 홈페이지를하는 경우에 리디렉션의 원인이됩니다
https://www.google.com/#q=rainbow&safe=active
당신은 구글과 검색 잘못된 링크를 사용하는
반환 된 'content'의 헤더를 제거하고 html 파일에 저장 한 다음 브라우저에서 확인하십시오. – martineau
Python에서 Mozilla를 사용자 에이전트로 사용한다는 점을 고려하면 Safari가 사용하는 것과 동일한 사용자 에이전트입니까? –
@PauloBu 예. 헤더는 Safari Web Inspector에서 그대로 복사됩니다. –