Начиная с библиотек urllib2
и feedparser
в Python, большую часть времени я получаю следующую ошибку, когда пытаюсь подключиться и извлечь контент с определенного URL:
urllib2.URLError: <urlopen error [Errno 110] Connection timed out>
Минимальные воспроизводимые примеры (базовые, использующие feedparser.parser
напрямую и расширенные, где я сначала использую библиотеку urllib2
для извлечения содержимого XML) приведены ниже.
# test-1
import feedparser
f = feedparser.parse('http://www.zurnal24.si/index.php?ctl=show_rss')
title = f['channel']['title']
print title
# test-2
import urllib2
import feedparser
url = 'http://www.zurnal24.si/index.php?ctl=show_rss'
opener = urllib2.build_opener()
opener.addheaders = [('User-Agent', 'Mozilla/5.0')]
request = opener.open(url)
response = request.read()
feed = feedparser.parse(response)
title = feed['channel']['title']
print title
Когда я пытаюсь использовать разные URL-адреса (например, http://www.delo.si/rss/
), все работает нормально. Обратите внимание, что все URL приводят к неанглийским (т. Е. Словенским) RSS-каналам.
Я запускаю свои эксперименты как с локальной, так и с удаленной машины (через ssh
). Обнаруженная ошибка чаще возникает на удаленном компьютере, хотя она непредсказуема даже на локальном хосте.
Любые предложения будут с благодарностью.