zoukankan      html  css  js  c++  java
  • 毕业设计想做一个垂直搜索引擎,关于手机方面

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

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

  • 相关阅读:
    LeetCode(1): 两数之和
    LeetCode(2): 两数相加
    目标检测
    图像语义分割
    Python的图像库
    Caffe
    Layers Of Caffe
    Solver Of Caffe
    ORA-01144_表空间数据文件超出最大限制
    ORA-01654_TableSpace空间不足问题处理
  • 原文地址:https://www.cnblogs.com/redlight/p/2681295.html
Copyright © 2011-2022 走看看