5 votes

Créer un crawler/spider

Je cherche à créer un crawler/spider mais j'ai besoin de quelqu'un pour m'indiquer la bonne direction à suivre pour commencer.

En gros, mon araignée va rechercher des fichiers audio et les indexer.

Je me demande juste si quelqu'un a des idées sur la façon dont je devrais m'y prendre. J'ai entendu dire que le faire en PHP serait extrêmement lent. Je connais vb.net, cela pourrait-il m'être utile ?

Je pensais utiliser la recherche par type de fichier de Google pour obtenir des liens à explorer. Est-ce que cela serait possible ?

2voto

qw3n Points 2697

Voici un lien vers un tutoriel sur la façon d'écrire un robot d'exploration du Web en Java. http://java.sun.com/developer/technicalArticles/ThirdParty/WebCrawler/ Je suis sûr que si tu cherches sur Google, tu peux en trouver pour d'autres langues.

2voto

Chris Diver Points 8221

En VB.NET, vous devrez d'abord obtenir le HTML, donc utiliser la classe WebClient ou les classes HttpWebRequest et HttpWebResponse. Vous trouverez de nombreuses informations sur la façon de les utiliser sur l'Internet.

Ensuite, vous devrez analyser le HTML. Je recommande d'utiliser des expressions régulières pour cela.

Votre idée d'utiliser Google pour une recherche par type de fichier est bonne. J'ai fait une chose similaire il y a quelques années pour rassembler des PDF afin de tester l'indexation des PDF dans SharePoint, ce qui a très bien fonctionné.

0voto

Memin Points 1

Le pseudo-code devrait être le suivant :

Method spider(URL startURL){ 
 Collection URLStore; // Can be an arraylist  
    push(startURL,URLStore);// start with a know url
       while URLStore ! Empty do 
         currURL= pop(URLStore); //take an url
         download URL page;
        push (URLx, URLStore); //for all links to URL in the page which are not already followed, then put in the list

Pour lire des données à partir d'une page web en Java, vous pouvez faire ce qui suit :

URL myURL = new URL("http://www.w3.org"); 
 BufferedReader in =  new BufferedReader( new InputStreamReader(myURL.openStream())); 
 String inputLine; 
 while ((inputLine = in.readLine()) != null) //you will get all content of the page
 System.out.println(inputLine); //  here you need to extract the hyperlinks
 in.close();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X