Я попытался разбора веб-страницу с помощью urllib.request
«s urlopen()
метод, как:urllib.request.urlopen вернуть байт, но я не могу расшифровать это
from urllib.request import Request, urlopen
req = Request(url)
html = urlopen(req).read()
Однако, последняя строка возвращается результат в байтах.
Так что я попытался его расшифровкой, как:
html = urlopen(req).read().decode("utf-8")
Однако произошла ошибка:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte.
С некоторыми исследованиями, я нашел one related answer, который разбирает charset
решить декодирование. Тем не менее, страница не возвращает набор символов, и когда я попытался проверить его на Chrome Web Inspector, следующая строка была написана в заголовке:
<meta charset="utf-8">
Так почему я не могу расшифровать его с utf-8
? И как я могу проанализировать веб-страницу успешно?
URL-адрес веб-сайта: http://www.vogue.com/fashion-shows/fall-2016-menswear/fendi/slideshow/collection#2
, где я хочу сохранить изображение на своем диске.
Обратите внимание, что я использую Python 3.5.1. Я также отмечаю, что вся работа, которую я написал выше, хорошо функционировала в других моих программах очистки.
Спасибо. Можете ли вы поделиться, как вы можете узнать, что это gzip? – Blaszard
@Blaszard дубликат имеет то, что –
@Blaszard, 'urlopen (req) .info() ['content-encoding']' – falsetru