urllib2 对某些网址返回 HTTP 错误 400:错误请求,对其他网址有效
我正在尝试用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是一个无法正常工作的例子)
有些网站能正常访问,有些却不行,所以我不太确定自己哪里出错了。我是不是漏掉了什么重要的头信息?请求的方式不对吗?还是使用了错误的用户代理?(我也试过用我浏览器的用户代理,但这并没有解决问题)
谢谢!
1 个回答
8
你的头部信息里多了一个冒号。
headers = { 'User-Agent:': 'Mozilla/5.0' }
应该是:
headers = { 'User-Agent': 'Mozilla/5.0' }