У меня есть список (почти 500) URL-адресов RSS/ATOM-каналов для анализа и извлечения ссылок.
Я использую библиотеку python feedparser для анализа URL-адреса. Чтобы параллельно анализировать список URL-адресов, я подумал об использовании библиотеки потоков в python.
Мой код выглядит примерно так
import threading
import feedparser
class PullFeeds:
def _init__(self):
self.data = open('urls.txt', 'r')
def pullfeed(self):
threads = []
for url in self.data:
t = RssParser(url)
threads.append(t)
for thread in threads:
thread.start()
for thread in threads:
thread.join()
class RssParser(threading.Thread):
def __init__(self, url):
threading.Thread.__init__(self)
self.url = url
def run(self):
print "Starting: ", self.name
rss_data = feedparser.parse(self.url)
for entry in rss_data.get('entries'):
print entry.get('link')
print "Exiting: ", self.name
pf = PullFeeds()
pf.pullfeed()
Проблема в том, что при запуске этого скрипта из Feedparser возвращается пустой список. Но без потоковой обработки feedparser распечатывает список ссылок, проанализированных из предоставленного URL-адреса.
Как я могу это исправить?