• 【从零开始学爬虫】采集谷歌网页列表数据


    采集网站

    【场景描述】采集谷歌浏览器关键词搜索出的网页列表数据。

    【源网站介绍】谷歌一家位于美国的跨国科技企业,被公认为全球最大的搜索引擎公司,业务包括互联网搜索、云计算广告技术等,同时开发并提供大量基于互联网的产品与服务。

    【使用工具】前嗅ForeSpider数据采集系统,免费下载:

    http://www.forenose.com/view/forespider/view/download.html

    【入口网址】

    https://www.google.com/search?q=apple&ei=FtsaY7KIJdCnoATFw4fYDg&start=0&sa=N&ved=2ahUKEwiy65bMiIf6AhXQE4gKHcXhAes4ChDy0wN6BAgBEEE&cshid=1662704515605056&biw=885&bih=755&dpr=1

    【采集内容】采集谷歌“apple”关键词下的全部列表数据,包括来源、标题以及摘要。

     

     

    【待采集内容】

     

     

    思路分析

    配置思路概览:

     

     

     

     

    配置步骤

    . 新建采集任务

    选择【采集配置】,点击任务列表右上方【+】号可新建采集任务,将采集入口地址填写在【采集地址】框中,自定义任务名称并输入在【任务名称】框内,点击“完成”。

     

     

    【新建采集任务】

     

    二. 模板配置

    1. 翻页链接采集配置

    ①查找翻页链接及其规律

    在入口地址页内打开“F12”,按如下步骤找到翻页地址,并复制刷新后的翻页链接地址

     

     

    【翻页链接位置】

     

    对比观察翻页链接的规律

     

     

    【翻页链接】

    观察发现:随着翻页变化,页码数与请求网址(Requestrian URL)中“start=”后的数字相关。所以,其规律为:

    "https://www.google.com/search?q=apple&ei=K_UaY4yIFNqBxc8PuNiymAk&start="+页码数减1后乘以10+"&sa=N&ved=2ahUKEwjMyfG7oYf6AhXaQPEDHTisDJM4KBDy0wN6BAgBEEE&biw=553&bih=755&dpr=1"

    找到翻页链接位置及其规律就可以对应去编写脚本。

    ②脚本的创建与编写

     

     

    【脚本的创建与编写】

     

    脚本文本:

    url u;//定义一个u,赋予其url属性

    var url_beg=DOM.FindClass("AaVjTc","table");//定义一个url_beg,其属性位置位于 table class ="AaVjTc"所属节点下

    var ur=url_beg.child.child.next.next.next;//定义一个ur,其位置属性位于url_beg二级子节点三级兄弟节点下

    for(int i=0;i<=7;i++){ //为翻页数字页码写一个循环

          u.title="谷歌第"+(i+1)+"页";//将标题内容设置为:谷歌第几页

         var ur="https://www.google.com/search?q=apple&ei=K_UaY4yIFNqBxc8PuNiymAk&start="+i*10+"&sa=N&ved=2ahUKEwjMyfG7oYf6AhXaQPEDHTisDJM4KBDy0wN6BAgBEEE&biw=553&bih=755&dpr=1";//根据翻页链接规律,拼全链接

         u.urlname=ur;//取得已拼合链接

         u.entryid=CHANN.id;

         u.tmplid=2;//关联模板02

         RESULT.AddLink(u); //输出采集结果

         ur=ur.next;//进入下个翻页链接的采集

    }

    ③查看采集预览

    查看采集预览,并将链接粘贴到浏览器验证一下是否采集正确。

     

     

    【采集预览】

     

    1. 数据抽取

    ①新建模板、添加数据抽取

    如下新建模板并添加数据抽取,在示例地址框内输入任一翻页链接

     

     

    【新建模板、添加数据抽取】

    ②数据表结构创建

    如下在表结构内创建出所需采集的字段

     

     

    【创建表结构】

     

    ③关联表单

    数据抽取关联数据结构表单

     

     

    【关联表单】

     

    ④创建并编写数据抽取脚本

    如下创建脚本,并根据网页结构编写数据抽取脚本

     

     

    【脚本的创建与编写】

     

    脚本文本:

    record re ;//定义一个re,赋予其record属性

    var ret=DOM.FindClass("hlcw0c","div");//定义一个ret,其位置属性位于 div class="hlcw0c"所在节点下

    while (ret){//遍历ret

          var beg=DOM.FindClass("MjjYud","div",ret);//定义一个beg,其位置属性位于 div class="MjjYud"所在节点下

          var pu =beg.child.child.child;// 定义一个pu,其位置属性位于 div class="Z26q7c UK95Uc jGGQ5e VGXe8"所在节点下

          var tit=pu.child.child.child.next;   //定义一个tit,其位置属性位于 h3 class="LC20lb MBeuO DKV0Md"所在节点下

          var pag=tit.next;//定义一个pag ,其位置属性位于tit下一兄弟节点下

          var con=pu.next;//定义一个con ,其位置属性位于pu下一兄弟节点下

          re.page=DOM.GetTextAll(pag);//取得列表内容来源

          re.title=DOM.GetTextAll(tit);//取得列表内容标题

          re.content=DOM.GetTextAll(con);//取得列表内容摘要

          RESULT.AddRec(re,this.schemaid);//输出采集结果

          ret=ret.next;//进入下一个待采集列表

    }

    ⑤查看采集预览

    查看采集预览,并核对一下内容是否采集正确。

     

     

    【采集预览】

     

  • 相关阅读:
    java后端:nacos 实现动态配置
    力扣 146. LRU 缓存
    Poco库使用:事件通知
    java-net-php-python-springboot家政服务平台计算机毕业设计程序
    工作流与BPM的区别
    窗口期即将关闭,谁在跑出车规级AI芯片的创新“超速度”?
    Ai时代降临,我们的未来又在哪里?
    QT·Qt, QML, Widgets 有什么区别?
    第十章 二叉树的各种遍历
    Roam Research 综合评测以及使用教程
  • 原文地址:https://www.cnblogs.com/forenose/p/16690376.html