Загрузка страницы Mechanize Python не работает с HTTPS

Я сейчас на Linux Mint 13 Xfce 32-bit, 3.2.0-7 с Python 2.7.3. Я просто пытаюсь прочитать только исходный код веб-страницы, защищенной HTTPS. Вот моя небольшая программа:

#!/usr/bin/env python
import mechanize

browser = mechanize.Browser()
browser.set_handle_robots(False)
browser.set_handle_equiv(False)
browser.addheaders = [('User-Agent',
                               'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36     (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'),
                              ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'),
                              ('Accept-Encoding', 'gzip, deflate, sdch'),
                              ('Accept-Language', 'en-US,en;q=0.8,ru;q=0.6'),
                              ('Cache-Control', 'max-age=0'),
                              ('Connection', 'keep-alive')]

html = browser.open('https://scholar.google.com/citations?view_op=search_authors')
print html.read()

Но вместо исходного кода страницы я вижу только что-то вроде этого:

введите здесь описание изображения

В чем проблема и как ее исправить? Мне нужно использовать chanize, так как позже мне нужно будет поиграть с этой страницей.


person mazix    schedule 23.07.2015    source источник


Ответы (1)


Ваш код у меня работает, но я бы убрал строчку

('Accept-Encoding', 'gzip, deflate, sdch'),

чтобы потом не пришлось менять эту кодировку. Чтобы уточнить: вы получаете контент, но ожидаете, что он будет в «открытом тексте». Вы получаете чистый текст, не запрашивая сжатый контент.

person chelmertz    schedule 23.07.2015