2009-06-18 7 views
1

Je veux construire un service de recherche pour une chose en particulier. Les données sont librement disponibles là-bas, via des services classifiés gratuits, et une foule d'autres sites.Y a-t-il des blocs de construction pour un moteur de recherche qui va gratter d'autres sites?

Y a-t-il des blocs de construction, par ex. crawlers open-source que je personnaliserais - plutôt que de construire à partir de zéro, que je peux utiliser?

Des conseils sur la construction d'un tel produit? Pas seulement technique, mais toute la vie privée/les choses juridiques que je pourrais avoir besoin de prendre en considération.

E.g. Ai-je besoin de «donner du crédit» d'où proviennent les résultats et de mettre un lien vers l'original - si je les trouve dans de nombreux endroits? Edit: En passant, j'utilise GWT avec JS pour le front-end, je n'ai pas encore décidé de la langue pour le back-end. Soit PHP ou Python. Pensées?

Répondre

2

Il existe peu de blocs en python que vous pouvez utiliser.

  1. beautifulsoup [http://www.crummy.com/software/BeautifulSoup/] pour analyser le code HTML. Il est également capable de gérer les codes erronés, et son API est facile à utiliser ... bien mieux que n'importe quel outil de type DOM pour moi. Mon ami l'a utilisé pour gratter son ancien forum phpbb avec succès. Il a de très bons docs.
  2. mechanize [http://wwwsearch.sourceforge.net/mechanize/]] est une bibliothèque cliente HTTP simulant le navigateur web. Il gère les cookies, les formulaires de remplissage et ainsi de suite. Aussi facile à utiliser, mais cela aide si vous comprenez comment fonctionne http.
  3. http://dev.scrapy.org/ - c'est une chose relativement nouvelle: un cadre de raclage entier basé sur torsadé. Je n'ai pas beaucoup joué avec.

J'utilise deux premiers pour mes besoins; f.e. il a besoin de 20 lignes de code pour obtenir un outil de test automatique pour un sondage en trois étapes, avec une simulation d'attente pour que l'utilisateur entre des données et ainsi de suite.

+0

Donc, je suppose que la notion est que je créerais un «scraper d'écran» et l'analyse du code HTML et de prendre l'information utile, puis le dumping dans un db? Est-ce le processus général? – marcamillion

+0

Pour moi, c'était assez générique ... la seule limitation que je vois est qu'il n'y a ni javascript ni moteur flash pour simuler pleinement webbrowser. Vous pouvez cependant ajouter js avec la liaison spidermonkey - je n'ai jamais eu besoin de ça. – liori

0

J'ai fait un grattoir d'écran en Ruby qui a duré cinq minutes. Apparemment this dude l'a jusqu'à 60 secondes! Je ne suis pas sûr que Ruby soit aussi évolutif ou rapide que ce que vous cherchez, mais je n'ai jamais vu un chemin plus rapide vers une preuve de concept ou un prototype.

Le secret est une bibliothèque appelée "hpricot", qui a été construite exactement dans ce but.

Je ne sais rien de PHP ou de Python ou de ce qui est disponible pour ces systèmes/langages de développement.

Bonne chance!

+0

Donc je suppose que l'idée est que je créerais un «scraper d'écran» et que j'analyserais le code HTML et que j'enlèverais l'information utile, puis je jetterais cela dans un db? Est-ce le processus général? – marcamillion

+0

Ouais c'est l'idée. –

Questions connexes