Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.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 使用urllib2获取internet资源,获取http 402错误_Python_Http_Urllib2 - Fatal编程技术网

Python 使用urllib2获取internet资源,获取http 402错误

Python 使用urllib2获取internet资源,获取http 402错误,python,http,urllib2,Python,Http,Urllib2,我尝试使用urllib2从字幕网站获取zip文件 示例网站是,我尝试下载此文件 我在脚本中测试并打印url。url很好。我复制并粘贴到网络浏览器中,我可以成功下载它 起初,脚本是这样的: try: f = urllib2.urlopen(example_url) f.read() something... except URLError, e: print e.code 但我得到了403错误码。搜索之后,我尝试将标

我尝试使用urllib2从字幕网站获取zip文件

示例网站是,我尝试下载此文件

我在脚本中测试并打印url。url很好。我复制并粘贴到网络浏览器中,我可以成功下载它

起初,脚本是这样的:

    try:
        f = urllib2.urlopen(example_url)
        f.read()
        something...
    except URLError, e:
        print e.code
但我得到了403错误码。搜索之后,我尝试将标题更改为{'User-Agent':'Mozilla/5.0'}。代码已更改为:

    try:
        req = urllib2.Request(example_url,headers={'User-Agent': 'Mozilla/5.0'})
        f = urllib2.urlopen(req)
        something...
    except URLError, e:
        print e.code

然后我得到了402个错误。我想知道这是因为网站设置还是因为我的代码中有错误?

402表示请求目前无效

这是留作将来使用的

发件人:

402需要付款

保留供将来使用。最初的意图是,该代码可能被用作某种形式的数字现金或小额支付方案的一部分,但这并没有发生,而且该代码通常不被使用。如果某个特定IP地址发出过多请求,并且要求此人输入验证码,YouTube将使用此状态

因此,可能涉及导致问题的验证码

请检查Robots.txt文件中的站点:
www.domain\u name.com/Robots.txt

我会尝试使用:

urllib.urlretrieve(url, outname)

因为您试图下载文件而不是打开它。

谢谢您的回答。但我并没有提出过分的要求。我只要求一次。如果我在浏览器中使用此url,它可以正常工作。这是为什么?如果你甚至用一个标题试图混淆这个网站,这对我来说毫无意义。否则我会说该网站可能不允许自动非浏览器下载。查看robots.txt网站?robots.txt上写着:Sitemap:User-agent:Googlebot-Disallow:/sub/static-Disallow:/User/tpl-Disallow:/imgdb-Disallow:/software-discuz-Disallow:/splayer显然所有机器人都被禁止,这就是你的问题所在。