Sto lavorando a un piccolo progetto per analizzare il contenuto di alcuni siti che trovo interessanti; questo è un vero progetto fai-da-te che sto facendo per il mio spettacolo/illuminazione, quindi mi piacerebbe codificarne il più possibile da solo.Come progettare un crawler bot?
Ovviamente, avrò bisogno di dati per alimentare la mia applicazione, e stavo pensando che avrei scritto un piccolo crawler che avrebbe richiesto forse 20k pagine di html e le avrebbe scritte in file di testo sul mio disco rigido. Tuttavia, quando ho dato un'occhiata a SO e ad altri siti, non sono riuscito a trovare alcuna informazione su come farlo. È fattibile? Sembra che ci siano opzioni open source disponibili (webpshinx?), Ma mi piacerebbe scriverlo da solo, se possibile.
Lo schema è l'unica lingua che conosco bene, ma ho pensato di utilizzare questo progetto per apprendere qualcosa di Java, quindi sarei interessato se ci sono librerie racket o java che potrebbero essere utili per questo .
Quindi, per riassumere la mia domanda, quali sono alcune buone risorse per iniziare? Come posso convincere il crawler a richiedere informazioni ad altri server? Dovrò scrivere un parser semplice per questo, o è inutile visto che voglio prendere l'intero file html e salvarlo come txt?
non è necessario un parser, se non avete intenzione di analizzare, ma l'analisi avrebbe fatto tirando fuori i collegamenti molto più facile. Non sei sicuro di dove hai problemi; ci sono molti esempi disponibili - cosa hai ottenuto finora? –
Hai intenzione di eseguire tutti i socket manualmente e parlare in modo raw HTTP ai server? O sei contento di utilizzare strumenti di livello superiore per richiedere URL specifici? (Sei più interessato al lato networking o al lato HTML-parsing?) – sarnold
Dave, potresti indicare un esempio? Sarebbe molto utile. Sarnold, non ho mai fatto alcuna programmazione web, solo alcune cose con il modulo web server/insta in rack, che accetta una richiesta e produce una risposta. Quindi non sono nemmeno sicuro di come scrivere un programma che invii una risposta in sé. –