-2
我遇到问题使用python访问网页 - 它抛出一个HTTP错误403.浏览堆栈溢出后,我发现许多其他用户遇到相同的错误,并通过更改请求的头部来纠正它。我试过但仍然收到错误。Python Web请求错误403
这里是我的代码:
req = urllib2.Request("http://www.mozilla.org")
req.add_header('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8a3) Gecko/20040817')
try:
response = urllib2.urlopen(req)
except urllib2.URLError, (err):
print "URL error(%s)" % (err)
编辑:这里是我的代码,一个网络爬虫它开始一个更大的块。另外 - 我一直在使用http://www.mozilla.org作为我的测试网址,虽然它似乎不适用于任何其他网址,如谷歌和雅虎。
#!/usr/bin/python
import sys
import urllib2
import urlparse
tocrawl = set([sys.argv[1]])
crawled = set([])
while 1:
try:
crawling = tocrawl.pop()
print 'Crawling: ', crawling
except KeyError:
print 'No more to crawl!'
raise StopIteration
url = urlparse.urlparse(crawling)
print 'Url parse returned ', url
req = urllib2.Request(crawling)
req.add_header('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8a3) Gecko/20040817')
print 'header: ', req.get_header('User-agent')
try:
print 'test'
response = urllib2.urlopen(req)
print 'test2'
print 'response: ', response
except urllib2.URLError, (err):
print "URL error(%s)" % (err)
continue
msg = response.read()
你确实试图取http://www.mozilla.org吗?因为你的代码适合我。如果没有,那么很难说没有你想要获取的URL。 – jedwards
我无法重现您的结果。你能分享更多可能导致问题的代码吗?在响应的主体中是否还有错误消息? – Trevor