Получение HTML с Pycurl

Я пытаюсь получить страницу HTML с помощью pycurl, поэтому я могу разобрать ее для соответствующей информации, используя str.split и некоторые для циклов. Я знаю, что Pycurl извлекает HTML, поскольку он печатает его на терминале, однако, если я попытаюсь сделать что-то вроде

html = str(c.perform()) 

Переменная будет просто содержать строку, которая говорит «Нет».

Как я могу использовать pycurl для получения html или перенаправить все, что он отправляет на консоль, чтобы он мог использоваться как строка, как описано выше?

Большое спасибо всем, у кого есть предложения!

  • Какие хорошие учебные пособия существуют для изучения pycURL?
  • Как установить pyCurl?
  • Pip Requirements.txt --global-option, вызывающий ошибки установки с другими пакетами. "Вариант не распознан"
  • Сертификат pycurl и SSL
  • Ошибка при установке PyCurl
  • Почему Python не может найти общие объекты, находящиеся в каталогах в sys.path?
  • Пользовательские заголовки с pycurl
  • pycurl install :( уже есть версия libcurl min.
  • 2 Solutions collect form web for “Получение HTML с Pycurl”

    это отправит запрос и сохранит / распечатает тело ответа:

     from StringIO import StringIO import pycurl url = 'http://www.google.com/' storage = StringIO() c = pycurl.Curl() c.setopt(c.URL, url) c.setopt(c.WRITEFUNCTION, storage.write) c.perform() c.close() content = storage.getvalue() print content 

    если вы хотите сохранить заголовки ответов, используйте:

     c.setopt(c.HEADERFUNCTION, storage.write) 

    Метод perform () выполняет html-выборку и записывает результат в указанную вами функцию. Вам нужно предоставить буфер для ввода html и функции записи. Обычно это можно выполнить с помощью объекта StringIO следующим образом:

     import pycurl import StringIO c = pycurl.Curl() c.setopt(pycurl.URL, "http://www.google.com/") b = StringIO.StringIO() c.setopt(pycurl.WRITEFUNCTION, b.write) c.setopt(pycurl.FOLLOWLOCATION, 1) c.setopt(pycurl.MAXREDIRS, 5) c.perform() html = b.getvalue() 

    Вы также можете использовать файл или tempfile или что-нибудь еще, что может хранить данные.

    Python - лучший язык программирования в мире.