Заголовок Ответа Python urllib2

Это - хорошая практика для определения столбцов, которые Вы запрашиваете, запрашиваете ли Вы все столбцы.

, Таким образом, я предложил бы, Вы написали имя каждого столбца в операторе (исключая тот, который Вы не хотите).

SELECT
    col1
    , col2
    , col3
    , col..
    , col53

FROM table
24
задан Guilherme Nascimento 3 February 2015 в 21:13
поделиться

4 ответа

Content-Type text / html

Действительно, вот так, без двоеточия?

Если да, то это может объяснить: это недопустимый заголовок, поэтому он игнорируется, поэтому urllib вместо этого угадывает тип содержимого, глядя на имя файла. Если в конце URL-адреса окажется '.flv', он предположит, что тип должен быть video / x-flv .

5
ответ дан 28 November 2019 в 23:25
поделиться

Это странное несоответствие может быть объяснено разными заголовками (возможно, типа accept), отправляемых двумя запросами - можете ли вы Проверь это...? Или, если Javascript работает в Firefox (который, я полагаю, вы используете, когда запускаете firebug?) - поскольку он определенно НЕ работает в случае Python - «все ставки отключены», как говорится ;-) .

2
ответ дан 28 November 2019 в 23:25
поделиться

Помните, что веб-сервер может возвращать разные результаты для одного и того же URL-адреса в зависимости от различий в запросе. Например, согласование типа содержимого: отправитель запроса может указать список типов содержимого, которые он будет принимать, и сервер может возвращать разные результаты, чтобы попытаться удовлетворить различные потребности.

Кроме того, вы можете получить страницу с ошибкой для одного ваших запросов, например, из-за того, что он имеет неправильный формат, или у вас нет файлов cookie, которые правильно аутентифицируют вас и т. д. Посмотрите на сам ответ, чтобы узнать, что вы получаете.

1
ответ дан 28 November 2019 в 23:25
поделиться

Попробуйте запросить, как это делает Firefox. Вы можете увидеть заголовки запроса в Firebug, поэтому добавьте их в свой объект запроса:

import urllib2

request = urllib2.Request('http://your.tld/...')
request.add_header('User-Agent', 'some fake agent string')
request.add_header('Referer', 'fake referrer')
...
response = urllib2.urlopen(request)
# check content type:
print response.info().getheader('Content-Type')

Также есть HTTPCookieProcessor, который может улучшить его, но я не думаю, что он вам понадобится в большинстве случаев. Взгляните на документацию Python:

http://docs.python.org/library/urllib2.html

37
ответ дан 28 November 2019 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: