Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Web请求错误403_Python_Http_Http Status Code 403 - Fatal编程技术网

Python Web请求错误403

Python Web请求错误403,python,http,http-status-code-403,Python,Http,Http Status Code 403,我在使用python访问网页时遇到问题——它抛出了一个HTTP错误403。浏览stack overflow之后,我发现许多其他用户遇到了相同的错误,并通过更改请求的头来纠正它。我尝试了这个,但仍然收到错误 这是我的密码: 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) Gec

我在使用python访问网页时遇到问题——它抛出了一个HTTP错误403。浏览stack overflow之后,我发现许多其他用户遇到了相同的错误,并通过更改请求的头来纠正它。我尝试了这个,但仍然收到错误

这是我的密码:

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)
编辑:这是我的一大块代码,它是一个网络爬虫的开始。此外,我一直在使用它作为我的测试url,尽管它似乎不适用于任何其他url,如google和yahoo

#!/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()

固定的。问题是我没有设置必要的代理。谢谢你的回复

为了修复这个问题,我添加了以下代码片段

proxy_info = urllib2.ProxyHandler({'http' : "proxy:80"})
opener = urllib2.build_opener(proxy_info)
urllib2.install_opener(opener)

你真的要去拿吗?因为你的代码对我来说很好。如果没有,很难说没有你试图获取的URL。我无法复制你的结果。您是否可以共享更多可能导致问题的代码?响应正文中是否也有错误消息?