毕业设计想做一个垂直搜索引擎,关于手机方面

    我毕业设计打算做一个垂直搜索引擎,关于手机方面的,抓取几个主流电商的网站的手机信息,导入到自己的搜索引擎主要实现搜索的比价,以及相关手机的性能参数。导师说最大的困难时抓取信息,这几天分析了京东商城手机方面的html页面原码,发现还是很有规律的:

1)手机展览的页面公27页(到目前为止),格式是:http://www.360buy.com/products/652-653-655-0-0-0-0-0-0-0-1-1-1.html然后是http://www.360buy.com/products/652-653-655-0-0-0-0-0-0-0-1-1-2.html,只是末尾数据的变化。

2)手机信息页面是http://www.360buy.com/product/576909.htmlhttp://www.360buy.com/product/+相关编号

3)用vc写了一个爬虫的雏形,就是抓取展览页的html源码,然后抽取产品信息的url地址,完整的爬虫还没开始写,过段时间在写完了会贴出来:

//VC++环境
#include <stdio.h>   
#include <afxinet.h>
int main(int argc, char* argv[])   
{   
    char * url = "http://www.360buy.com/products/652-653-655-0-0-0-0-0-0-0-1-1-1.html";
    CString content;//存储读取的html源码
    printf("%s\n",url);
    //建立httpClient会话
    CInternetSession session("HttpClient");   
    CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);
    DWORD dwStatusCode;   
    pfile -> QueryInfoStatusCode(dwStatusCode); 

    if(dwStatusCode == HTTP_STATUS_OK)   
     {   
          
         CString data;
        while (pfile -> ReadString(data))   
         {   
             content+=data+"\r\n";   
         }
         content.TrimRight();   
        // printf("%s\n" ,(LPCTSTR)content);   
    }
    pfile -> Close();
    delete pfile;
    session.Close();
    printf("%d\n",content.GetLength());
    int hrefStart,hrefEnd;
    hrefStart=hrefEnd=0;
    //寻找html中<a target='_blank' href=#######>的字符串,以提取手机的url
    while((hrefStart=content.Find("<a target='_blank' href=",hrefEnd))!=-1){
        hrefEnd=content.Find(">",hrefStart);
        for(int i=hrefStart;i<=hrefEnd;++i)
            printf("%c",content[i]);
        printf("\n");
    }
    return 0 ;
} 

4、虽然c++的效率很高,我还是打算下一步用java来开发爬虫,一方面开发起来会比用c++简单些,另一方面抓取的信息量也不是很大,抓取的网页两不会超过5000页,如果需要优化,再回到c++,先实现任务,在有化任务,最后完美地完成工作。

5、规划一下过程:

1)先写爬虫来抓取信息。打算自己写爬虫,虽然有很多开源的爬虫,但是我发现并不太适合垂直搜索引擎的抓取过程,因为要抓取的信息是约束条件比较多,而且每个网站的信息组织形式都不太一样,自己写spider的更容易掌握业务的变化。

2)提取网页信息。也打算自己写解析工具,一则写起来不难,二则用开源的同样有点杀鸡用牛刀的感觉。

3)把有关信息导入数据库以便于将来显示相关的页面

4)建立索引,这里打算用lucene,然后结合ssh建立一个搜索引擎网站,给自己的大学画一个圆满的句号。

     先写到这里,因为一方面准备考研,毕业设计只能慢慢写了。

posted @ 2012-09-12 10:27  AndyDHG  阅读(367)  评论(0编辑  收藏  举报