2009-11-04 9 views
6

Używam biblioteki feedparser w Pythonie do pobierania wiadomości z lokalnej gazety (moim zamiarem jest przetwarzanie w języku naturalnym za pośrednictwem tego korpusu) i chciałbym móc odzyskać wiele z przeszłości wpisy z kanału RSS.Feedparser - odzyskaj stare wiadomości z Czytnika Google

Nie jestem bardzo zaznajomiony z kwestiami technicznymi RSS, ale myślę, że to powinno być możliwe (widzę, że np. Google Reader i Feedly mogą to robić "na żądanie", gdy przesuwam pasek przewijania).

Kiedy należy wykonać następujące czynności:

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 

mam tylko kilkanaście wpisów lub więcej. Myślałem o setkach. Może wszystkie wpisy w ostatnim miesiącu, jeśli to możliwe. Czy można to zrobić tylko z feedparserem?

Mam zamiar pobrać z kanału RSS tylko link do nowości i przeanalizować całą stronę za pomocą BeautifulSoup, aby uzyskać żądany tekst. Alternatywnym rozwiązaniem byłoby przeszukiwacz śledzący wszystkie lokalne linki na stronie, aby uzyskać wiele aktualności, ale na razie tego chcę uniknąć.

-

Jednym z rozwiązań, które pojawiły się do korzystania z pamięci podręcznej Google Reader RSS:

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

Jednak aby uzyskać dostęp do tego muszę się zalogować do Google Reader. Ktoś wie, jak to zrobić z Pythona? (Naprawdę nie wiem nic na temat sieci, zwykle tylko marnuję rachunkiem numerycznym).

Odpowiedz

9

Dostajesz tylko kilkanaście zgłoszeń, ponieważ to właśnie zawiera plik danych. Jeśli chcesz danych historycznych, musisz znaleźć kanał/bazę danych wspomnianych danych.

Sprawdź to ReadWriteWeb article pod kątem niektórych zasobów dotyczących wyszukiwania otwartych danych w Internecie.

Pamiętaj, że Feedparser nie ma z tym nic wspólnego, jak sugeruje twój tytuł. Feedparser analizuje to, co dajesz. Nie może znaleźć danych historycznych, chyba że je znajdziesz i przekazać. To po prostu parser. Mam nadzieję, że to wszystko wyjaśni! :)

+0

Jeszcze raz dziękuję Bartek. Myślę, że teraz rozumiem to lepiej. Czyli RSS jest po prostu plikiem xml przechowywanym na serwerze? Miałem zły obraz na ten temat ... myślałem, że to rodzaj "protokołu", aby uzyskać kanał tekstowy. Jeszcze raz dziękuję. –

3

Aby rozwinąć odpowiedź Bartka: Można również rozpocząć zapisywanie wszystkich wpisów w kanale, które już widziałem, i tworzyć własne archiwum historyczne treści kanału. Spowodowałoby to opóźnienie w używaniu go jako korpusu (ponieważ musielibyśmy to zrobić przez miesiąc, aby zebrać kolekcję miesięcznych wartości wpisów), ale nie bylibyście zależni od nikogo innego w odniesieniu do danych .

Może się mylę, ale jestem prawie pewny, że w ten sposób Google Reader może cofać się w czasie: mają gdzieś przechowywane poprzednie wpisy każdego kanału.

+0

Hummm ... Domyślam się, że sposobem na zdobycie kanału z samego Czytnika Google może być? –

+1

Wygląda na to, że sam Google Reader może zostać użyty do pobrania historycznej listy przedmiotów! : D http://googlesystem.blogspot.com/2007/06/reconstruct-feeds-history-using-google.html –

+0

Właśnie to odkryłem. Oto ostatnie 100 pozycji w interesującym Cię kanale: http://www.google.com/reader/atom/feed/http://feeds.folha.uol.com.br/folha/emcimadahora/rss091. xml?n = 1000 –

Powiązane problemy