2009-11-04 3 views
6

Я использую библиотеку feedparser на python для извлечения новостей из местной газеты (я намерен делать обработку естественного языка над этим корпусом) и хотел бы получить много прошлых записи из RSS-канала.Feedparser - получить старые сообщения от Google Reader

Я не очень разбираюсь в технических проблемах RSS, но думаю, что это должно быть возможно (я вижу, что, например, Google Reader и Feedly могут это делать «по запросу», когда я перемещаю полосу прокрутки).

Когда я делаю следующее:

import feedparser 

url = 'http://feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml' 
feed = feedparser.parse(url) 
for post in feed.entries: 
    title = post.title 

я получаю записи только дюжину. Я думал о сотнях. Возможно, все записи за последний месяц, если это возможно. Можно ли это сделать только с помощью feedparser?

Я собираюсь получить из rss-канала только ссылку на новостной материал и проанализировать полную страницу с помощью BeautifulSoup, чтобы получить текст, который я хочу. Альтернативное решение будет искателем, который следует за всеми локальными ссылками на странице, чтобы получить много новостей, но пока я хочу избежать этого.

-

Одно из решений, которые появились, чтобы использовать Google Reader RSS кэш:

http://www.google.com/reader/atom/feed/http://feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml?n=1000

Но получить доступ к этому я должен быть вход в Google Reader. Кто-нибудь знает, как я это делаю с python? (Я действительно ничего не знаю о сети, я обычно использую только числовое исчисление).

ответ

9

Вы получаете только десяток записей, потому что это то, что содержит фид. Если вам нужны исторические данные, вам нужно будет найти фид/базу данных указанных данных.

Отметьте это ReadWriteWeb article для получения некоторых ресурсов по поиску открытых данных в Интернете.

Обратите внимание, что Feedparser не имеет ничего общего с этим, как предполагает ваше название. Feedparser анализирует то, что вы ему даете. Он не может найти исторические данные, если вы не найдете его и не передадите в него. Это просто парсер. Надеюсь, что это прояснит! :)

+0

Еще раз спасибо Bartek. Кажется, теперь я понимаю это лучше. Итак, RSS - это просто xml-файл, хранящийся на сервере? У меня был неправильный образ об этом ... подумал, что это своего рода «протокол», чтобы получить текстовый фид. Еще раз спасибо. –

3

Чтобы расширить ответ на вопрос Бартека: вы также можете начать хранить все записи в корме, которые вы уже видели, и создать свой собственный исторический архив содержимого фида. Это задержит вашу способность начать использовать его как корпус (потому что вам нужно будет сделать это в течение месяца, чтобы создать коллекцию записей за месяц), но вы не будете зависеть от кого-либо еще для данных ,

Возможно, я ошибаюсь, но я уверен, что Google Reader может вернуться в прошлое: у них есть записи, которые хранятся где-то в прошлом.

+0

Hummm ... Я предполагаю, что теперь можно получить фид от Google Reader, может быть? –

+1

Кажется, что сам Google Reader можно использовать для извлечения исторического списка предметов! : D http://googlesystem.blogspot.com/2007/06/reconstruct-feeds-history-using-google.html –

+0

Я тоже это обнаружил. Вот последние 100 пунктов в интересующем вас канале: http://www.google.com/reader/atom/feed/http://feeds.folha.uol.com.br/folha/emcimadahora/rss091. XML?n = 1000 –