urllib2给出HTTP错误400:某些网址的错误请求,适用于其他网址

时间:2011-06-12 03:09:47

标签: python http url urllib2

我正在尝试使用Python的urllib2模块执行简单的HTTP get请求。它有时会起作用,但有时我得到HTTP Error 400: Bad Request。我知道这不是网址的问题,因为如果我使用urllib而只是做urllib.urlopen(url)它就可以了 - 但是当我添加标题并执行urllib2.urlopen()时,我在某些网站上收到错误请求

以下是无效的代码:

# -*- coding: utf-8 -*-
import re,sys,urllib,urllib2

url = "http://www.gamestop.com/"

headers = {'User-Agent:':'Mozilla/5.0'}

req = urllib2.Request(url,None,headers)
response = urllib2.urlopen(req,None)
html1 = response.read()

(gamestop.com是一个不起作用的URL的示例)

有些不同的网站有效,有些则没有,所以我不确定我在这里做错了什么。我错过了一些重要的标题吗?请求不正确?使用错误的用户代理? (我也尝试使用我的浏览器的确切用户代理,但没有修复任何东西)

谢谢!

1 个答案:

答案 0 :(得分:8)

你的标题中有一个额外的冒号。

headers = { 'User-Agent:': 'Mozilla/5.0' }

应该是:

headers = { 'User-Agent': 'Mozilla/5.0' }