2011-01-07 6 views
4

Ich bin neu im Web Crawling. Ich werde eine Suchmaschine bauen, die der Crawler speichert Rapidshare Links einschließlich URL, dass Rapidshare Links gefunden ...Vorschlag zum Erstellen von Suchmaschine mit Django

Mit anderen Worten, ich werde eine Website ähnlich wie filestube.com

Nach einigen bauen Suche, habe ich gefunden Scrapy arbeitet mit Django. Ich habe versucht, über nutch Integration mit Django zu finden, aber nichts gefunden

Ich hoffe, mich Vorschlag für den Aufbau dieser Art von Website geben kann ... vor allem den Crawler

Antwort

7

Bekanntestes steckbare App dafür ist Django-Haystack, die Sie mehrere Such Backends verbinden können:

  • Solr/Lucene das Schlagwort-konformen Apache Foundation Projekt
  • Whoosh eine native python Suche Bibliothek
  • Xapian eine weitere sehr gute semantische Suchmaschine

Heuhaufen ermöglicht es Ihnen, eine API zu verwenden, die wie eigene Queryset Syntax des Django schaut direkt Motoren diese Suche zu verwenden (die alle ihre eigene API und Dialekte haben, geschieht).

Wenn Sie juste nach Tools Schaben, was auch immer Werkzeug, das Sie verwenden: BeautifulSoup oder Scrappy, werden Sie auf Ihrem eigenen, schreiben Python-Code sein, der analysieren, was Sie analysieren möchten, und dann füllen Sie Ihre Django-Modelle.
Dies können sogar separate Python-Skripte sein, die im Modul "commands.py" verfügbar sind.

Wenn Sie viele Dateien durchsuchen müssen, benötigen Sie wahrscheinlich einen Index, der häufig neu erstellt wird und schnelle Suchen ermöglicht, ohne das django ORM zu treffen.
Mithilfe eines Solr-Index (zum Beispiel) können Sie andere Felder im laufenden Betrieb erstellen, z. B. virtuelle Felder basierend auf den Feldern Ihres realen Modells (Beispiel: Vornamen und Nachname des Spalters teilen, oberes Dateinamenfeld hinzufügen, was auch immer)

natürlich f Sie nicht schnell Indexierung, Keyword-Boost oder semantische Analyse brauchen, können Sie immer noch eine klassische Volltextsuche über ein paar django Modellfelder tun i:

+0

BeautifulSoup ist verdammt langsam und tot :) Scrappy ist besser und es verwendet etree – virhilo

+0

BeautifulSoup aus Lxml ist nett http://codespeak.net/lxml/2.0/elementsoup.html –

0

Haben Sie DjangoItem überprüft? Es ist eine experimentelle Scrapy-Funktion, aber es ist bekannt zu arbeiten