Question

comme un exercice RSS Je voudrais être en mesure de chercher dans toutes les discussions à peu près Unix sur ce groupe.

comp.unix.shell

Je sais assez Python et comprendre RSS de base, mais je suis coincé sur ... Comment puis-je saisir tous les messages entre les dates particulières, ou au moins tous les messages entre Nième récents et Mth récents?

descriptions de haut niveau, pseudo-code est la bienvenue.

Merci!

EDIT:

Je voudrais pouvoir revenir plus de 100 messages, mais ne pas saisir comme l'analyse syntaxique 10 messages à la fois comme l'utilisation de cette URL:

http://groups.google .com / groupe / comp.unix.shell / thèmes? hl = fr & start = 2000 & sa = N

Il doit y avoir une meilleure façon.

Était-ce utile?

La solution

Comme mentionné Randal, cela viole les ToS de Google - mais, comme hypothétique ou pour une utilisation sur un autre site sans ces restrictions vous rig pourrait assez facilement quelque chose avec et href="http://www.crummy.com/software/BeautifulSoup/" rel="nofollow noreferrer"> BeautifulSoup . Utilisez urllib pour ouvrir la page puis utilisez BeautifulSoup pour saisir tous les sujets de discussion (et des liens si vous souhaitez analyser plus profondément). Vous pouvez alors trouver le lien programme à la page suivante des résultats et faire une autre urllib pour aller à la page 2 -. Puis répétez le processus

À ce stade, vous devriez avoir toutes les données brutes, il est juste une question de manipuler les données et mettre en œuvre les fonctionnalités de votre recherche.

Autres conseils

Crawling groupes Google constitue une violation des Google Conditions d'utilisation , plus précisément l'expression :

  

utiliser un robot, araignée, une application de recherche / récupération de site ou un autre dispositif pour récupérer ou indexer une partie du service ou de recueillir des informations sur les utilisateurs à des fins non autorisées

Êtes-vous sûr de vouloir annoncer que vous faites que si ouvertement? Et êtes-vous aveugle aux conséquences de votre résultat?

Pour N récente, apparaît comme vous pouvez passer le paramètre ?num=50 ou quelque chose dans l'URL du flux

Par exemple, 50 nouveaux messages de groupe comp.unix.shell

http://groups.google .com / groupe / comp.unix.shell / feed / atom_v1_0_msgs.xml? num = 50

et puis choisir un programme de feedparser comme Universal Flux Parser

Il est l'option .update_parsed feedparser , vous pouvez l'utiliser pour vérifier le msg dans la plage de date particulière

>>> e.updated_parsed              # parses all date formats
(2005, 11, 9, 11, 56, 34, 2, 313, 0)

Avez-vous pensé à yahoos YQL? Il est pas trop mal et peut accéder à un grand nombre d'API. http://developer.yahoo.com/yql/

Je ne sais pas si des groupes est suported mais u peut accéder aux flux rss. Pourrait être utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top