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',)