写点什么

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

作者:前嗅大数据
  • 2022 年 9 月 13 日
    天津
  • 本文字数:1738 字

    阅读完需:约 6 分钟

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

采集网站

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

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

【使用工具】前嗅 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;//进入下个翻页链接的采集

}


③查看采集预览

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



 【采集预览】


2.数据抽取

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

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

 

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


②数据表结构创建

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

 


【创建表结构】


③关联表单

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



【关联表单】


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

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



【脚本的创建与编写】


脚本文本:

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;//进入下一个待采集列表

}


⑤查看采集预览

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



【采集预览】

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2020.11.06 加入

前嗅大数据,企业级大数据供应商。www.forenose.com

评论

发布
暂无评论
【从零开始学爬虫】采集谷歌网页列表数据_大数据_前嗅大数据_InfoQ写作社区