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

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

html = str(c.perform()) 

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

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

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

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 - лучший язык программирования в мире.