2010-07-09 99 views
5

我正在研究制作网络爬虫/蜘蛛,但我需要有人指引我以正确的方向开始。制作网络爬虫/蜘蛛

基本上,我的蜘蛛会搜索音频文件并为它们编制索引。

我只是想知道如果任何人有任何想法我应该怎么做。我听说在PHP中完成它会非常缓慢。我知道vb.net所以可以派上用场?

我正在考虑使用Google文件类型搜索来获取抓取链接。那会好吗?

回答

2

在VB.NET中,您将需要首先获取HTML,因此请使用WebClient类或HttpWebRequest和HttpWebResponse类。关于如何在interweb上使用这些信息有很多信息。

然后你需要解析HTML。我建议为此使用正则表达式。

您使用Google进行文件类型搜索的想法是不错的选择。几年前,我做了一个类似的事情来收集PDF以测试SharePoint中的PDF索引,这非常有效。

+0

谢谢,我知道如何将数据插入到我的数据库中的桌面vb应用程序? – 2010-07-09 03:08:49

+0

取决于数据库的风格。有SQL Server的'System.Data.SqlClient'命名空间。对于其他任何您需要查看'System.Data.OleDb'命名空间的内容。最好是使用控制台的VB应用程序,如果你想这个无人值守运行 – 2010-07-09 03:14:16

+2

关于解析与正则表达式的HTML ... http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml -self-contained-tags 可能是有史以来最好的答案。 – rfusca 2010-07-09 03:40:17

2

这是关于如何在java中编写web爬虫的教程链接。 http://java.sun.com/developer/technicalArticles/ThirdParty/WebCrawler/我敢肯定,如果你谷歌它可以找到其他语言的。

+0

如果您在Java网络爬虫,难道一定要是服务器端?现在我在共享主机,不允许Java和我目前不能得到专用或VPS。 – 2010-07-09 03:04:24

+0

如果你愿意,不可以在你的家用电脑上运行。 – qw3n 2010-07-09 03:46:44

0

的伪代码应该是这样的:

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 

来读取网页的一些数据在Java中,你可以这样做:

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();