Feedparser Python: есть ли способ обработки ошибок соединения?

Я говорю об ошибках HTTP, например "404 Not Found". Я прочитал документацию, но не нашел ничего, что могло бы мне помочь.

1 ответ

Feedparser возвращает код состояния HTTP в status атрибут (как описано на https://pythonhosted.org/feedparser/reference-status.html), который вы можете проверить, а затем обработать, однако вам необходимо:

>>> import feedparser
>>> nonfeed = feedparser.parse('http://example.com/notafeed')
>>> nonfeed.status
404
>>> feed = feedparser.parse('http://stackru.com/feeds/')
>>> feed.status
200

Смотрите также документацию по "HTTP Redirects". Все заголовки HTTP возвращаются в headers атрибут, который может быть полезен для сообщения об ошибках.

Даже если нет ошибок HTTP, возможны ошибки синтаксического анализа. Хотя feedparser очень либерален в отношении того, что он принимает, он устанавливает флаг bozo, если встречает неправильно сформированный канал (и помещает описание ошибки в bozo_exception):

>>> feed.bozo
False
>>> nonfeed.bozo
1
>>> nonfeed.bozo_exception
SAXParseException('syntax error',)
Другие вопросы по тегам