我看了here和here瞭解我的問題,但沒有運氣。urllib2中的不同數據比Safari的Web Inspector
我做了一些旨在抓取網頁源代碼的python代碼,就像在Safari的Web Inspector中一樣。但是,我從我的應用程序和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
和頭匹配到什麼是Web檢查:
返回的代碼是不同的,但是,對於谷歌搜索爲「彩虹」。
我的Python:
http://paste.ubuntu.com/6270549/
Web檢查:
http://paste.ubuntu.com/6270606/
據我所知,好像是我的代碼是缺少大量無處不}catch(e){gbar_._DumpException(e)}
線的那出現在Web Inspector代碼中。另外,我的代碼只有78行,而Web Inspector代碼有235行。這是否意味着我的代碼沒有獲取所有的JavaScript或網頁的其他部分?如何讓我的代碼檢索與Web Inspector相同的數據?
刪除返回的「內容」中的標題,將其保存爲html文件,然後在瀏覽器中查看該標題。 – martineau
考慮到從Python使用Mozilla作爲用戶代理,是否使用了與Safari相同的用戶代理? –
@PauloBu是的。標題逐字從Safari Web Inspector複製。 –