urllib2 对某些网址返回 HTTP 错误 400:错误请求,对其他网址有效

1 投票
1 回答
3979 浏览
提问于 2025-04-16 19:24

我正在尝试用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' }

撰写回答