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

来源:互联网 发布:飞狐软件官网 编辑:程序博客网 时间:2024/06/07 00:17

    我毕业设计打算做一个垂直搜索引擎,关于手机方面的,抓取几个主流电商的网站的手机信息,导入到自己的搜索引擎主要实现搜索的比价,以及相关手机的性能参数。导师说最大的困难时抓取信息,这几天分析了京东商城手机方面的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.html即http://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建立一个搜索引擎网站,给自己的大学画一个圆满的句号。

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

原创粉丝点击