问题描述
||
我正在尝试使用Python的urllib2模块做一个简单的HTTP get请求。有时可以用,但其他时候我得到
HTTP Error 400: Bad Request
。我知道这不是URL的问题,因为如果我使用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的示例)
一些不同的站点可以工作,而有些则不行,所以我不确定这里做错了什么。我是否缺少一些重要的标题?发出错误的请求?使用了错误的User-Agent? (我也尝试使用浏览器的确切用户代理,但这并不能解决任何问题)
谢谢!
解决方法
标头中有一个多余的冒号。
headers = { \'User-Agent:\': \'Mozilla/5.0\' }
应该:
headers = { \'User-Agent\': \'Mozilla/5.0\' }