000
我接到一个客户需求是这样的,要采集通过 “城市运营” 这个keyword搜索到的百度网页的关键信息,title标题,新闻简介,网页a标签链接地址。正好我刚接触了一个叫 “神箭手" 的云采集平台,体验了一次感觉不错,拿来用用看效率如何!
大家可以看上面那个图,这个平台一个很好玩的东西就是这个webide,你可以直接在这写代码,直接测试,看日志,直接运行,导出结果。
这些操作都可以在一个界面完成,编程人员只需要关心最核心的采集逻辑就可以了。
001
讲讲 “神箭手" 核心采集逻辑,首选注意这个引擎的开发语言是js,你需要具备一点js基础,最先看下面两句:
每个采集爬虫都会用这两句启动,所以你的核心工作是编写 configs这个变量,下面看这个变量结构:
我们只需要改4个地方,1个是入口url,1个是采集的字段及其xpath,1个是下一页的规则,1个是对字段内容做必须的处理,这四个问题都通过config变量唯一规定了函数或变量名字,这4个问题也是采集程序最核心要解决的事。
002
那么具体到我客户的这个采集任务,我是怎么填写这些变量的呢
-
url 这个简单,把百度搜索结果的首页url填进去
-
数据字段咋办?这里还是用到xpath,具体的我们要采集的 title标题,新闻简介,网页a标签链接,xpath的规则可以自己去调试。调试过程在神箭手平台还是挺方便的,都在一个界面内可以完成!
-
至于下一页问题,需要开启百度的html源码,找到下一页的html代码就可以了,这个比较简单。
注意 addUrl 这一句,写上这一句平台就会继续采集 nextUrl,不写的话就停止在当前采集页上,其实平台可以循环不停的抓取下一页,关键就靠这个 addUrl
-
最后说一点,我们采集到的字段如果需要做转化,比如做trim操作,做数值计算,那就可以编写 afterExtractField 函数,这里我们以title为例子:
注意 fieldName == 'items.title‘,因为这个 afterExtractField 函数是每个item都会回调,所以要用fieldName来区分下,这里我们做了啥过滤,就是简单的把 <em></em>这两个标签去掉了。
003
从编写 -> 测试 -> 运行 - 出数据,不到1小时,这效率,挺神的!
需要源码的,想学习的,正在自学大数据的,想交流,求人带的 都注意啊!可以联系我,留言私信也可以的!API1024记住我的暗号哦~