我制作了一些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 Inspector中的内容:
返回的代码不同,谷歌搜索“彩虹”。
我的python:
http://paste.ubuntu.com/6270549/
Web Inspector:
http://paste.ubuntu.com/6270606/
据我所知,似乎我的代码缺少Web Inspector代码中存在的大量无处不在的}catch(e){gbar_._DumpException(e)}
行。此外,我的代码只有78行,而Web Inspector代码有235行。这是否意味着我的代码没有获得所有的javascript或网页的其他部分?如何让我的代码检索与Web Inspector相同的数据?
答案 0 :(得分:1)
您使用错误的链接搜索谷歌搜索 - 正确的链接应该是:
https://www.google.com/search?q=rainbow&safe=active
而不是:
https://www.google.com/#q=rainbow&safe=active
第二个链接会在python中使用时导致重定向到Google的主页,因为在Safari中没有使用它时(由于某种原因)它是不正确的。这就是代码不同的原因。