Разбор ответа Python с использованием httplib

После подключения к сокету и захвата ответа с помощью .read() как мне анализировать входной поток и строки чтения?

Я вижу, что данные возвращаются без CRLF

<html><head><title>Apache Tomcat/6.0.16 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - /index.html</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>/index.html</u></p><p><b>description</b> <u>The requested resource (/index.html) is not available.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.22</h3></body></html>

person Dave    schedule 02.02.2010    source источник
comment
а что ты хочешь разобрать?   -  person ghostdog74    schedule 02.02.2010
comment
Возможно, read() еще не работает правильно, так как вывод выглядит как сообщение об ошибке.   -  person John La Rooy    schedule 02.02.2010
comment
Если он получает сообщение об ошибке, то он работает.   -  person danben    schedule 02.02.2010
comment
Итак, похоже, что httplib и urllib возвращают разные данные. urllib сработал, как и ожидалось, спасибо за подсказку. Кто бы ни упоминал об этом, urllib.read() возвращает данные с CRLF, тогда как httplib.read(), кажется, возвращает данные, удаляя пробелы.   -  person Dave    schedule 03.02.2010


Ответы (2)


Вы должны разобрать HTML. В Python есть несколько способов анализа HTML — один из них — встроенный модуль HTMLParser. Другим и, возможно, лучшим способом является сторонний модуль BeautifulSoup.

Многие другие вопросы, связанные с обработкой HTML, объясняются в этой хорошей статье. Вы также можете прочитать соответствующую главу книги "Погружение в Python" (бесплатно онлайн).

person Eli Bendersky    schedule 02.02.2010

Используйте парсер HTML. Beautiful Soup кажется популярным.

person danben    schedule 02.02.2010