urllib2 выдает ошибку HTTP 400: неверный запрос для определенных URL-адресов, работает для других - PullRequest
1 голос
/ 12 июня 2011

Я пытаюсь выполнить простой HTTP-запрос get с помощью модуля Python urllib2.Иногда это работает, но иногда я получаю 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?(Я также пытался использовать точный User-Agent моего браузера, и это ничего не исправило)

Спасибо!

1 Ответ

8 голосов
/ 12 июня 2011

У вас есть дополнительное двоеточие в заголовках.

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

Должно быть:

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