【从零开始学爬虫】采集全球海关进出口新闻数据
![](https://static001.geekbang.org/infoq/ed/ed5e8688b03781dde67c352c0b87c0c8.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
l 采集网站
【场景描述】采集全球海关进出口新闻数据。
【源网站介绍】海关数据网提供全球 200 多个国家的海关数据及在线查询分析系统,贸易流向数据、进出口统计数据和进出口研究报告。
【使用工具】前嗅 ForeSpider 数据采集系统,免费下载:
![](https://static001.geekbang.org/infoq/ae/aeab6661fdb91c8c762b3e768522c0a2.gif)
ForeSpider 免费版本下载地址
【入口网址】
【采集内容】
采集全球各个国家最新进出口海关数据,新闻信息。
![](https://static001.geekbang.org/infoq/91/9142b20a2609a8c35b3d1e0c4ce9e591.png)
【采集效果】
如下图所示:
![](https://static001.geekbang.org/infoq/4c/4ca240506c071a953fb3a4eec5191a65.png)
l 思路分析
配置思路概览:
![](https://static001.geekbang.org/infoq/69/69d1d3e30d309187cb2bf63cc0b12345.png)
l 配置步骤
1.新建采集任务
选择【采集配置】,点击任务列表右上方【+】号可新建采集任务,将采集入口地址填写在【采集地址】框中,【任务名称】自定义即可,点击下一步。
![](https://static001.geekbang.org/infoq/08/08fd64cdd9615e99ad6946d0620ddd0e.png)
选择【抽取链接】的所有链接,勾选【列表链接】【普通翻页】,然后点击【完成】。
![](https://static001.geekbang.org/infoq/95/953225a929d731e261fc80290ae941df.png)
可在页面看到网站信息。
![](https://static001.geekbang.org/infoq/2c/2c1ff9fecece84f2211766aa93fae321.png)
2.抽取翻页链接
点击【采集预览】,可看到所有链接
![](https://static001.geekbang.org/infoq/b4/b48d21c210088907e6b7c6d5f90b7808.png)
①在入口页搜索选择不同页数,发现不同页数搜索结果的链接,得出页数链接的拼接规则为:http://hgsj.com/News/149_+ 页码.html
![](https://static001.geekbang.org/infoq/5b/5bc8ad912bee5fe778cb22e87e672e0a.png)
②在【模板抽取配置】选择频道(即任务名称),选择【脚本窗口】,将页数搜索配置在频道处即可。
![](https://static001.geekbang.org/infoq/89/89a7484b65922ee526c9490433453f8b.png)
③具体配置脚本如下:
一共包含 17 页
![](https://static001.geekbang.org/infoq/be/be33b201d59876225d275440ed87489b.png)
【代码】如下:
④点击【保存】,点击【采集预览】,即可看到配置效果。
显示所有页
![](https://static001.geekbang.org/infoq/5b/5bc8ad912bee5fe778cb22e87e672e0a.png)
3.链接抽取
这一步是在获取的翻页链接中,提取每页全部新闻链接:
①点击【列表链接】。
![](https://static001.geekbang.org/infoq/c5/c5cf537c9e47609ad4fa5caa9673c7cf.png)
![](https://static001.geekbang.org/infoq/68/6803bbbdbe4af5f2394b6be5abf54809.png)
②采用地址过滤的方法来抽取表一链接,具体如下所示:
点击【采集预览】,先观察标题链接规律,找到规律,很明显标题链接
![](https://static001.geekbang.org/infoq/4e/4e1b0c3a3a65e920627e531081284411.png)
然后设置地址过滤,过滤包含“/News”的链接,这样就把列表链接过滤出来了。
![](https://static001.geekbang.org/infoq/ce/cea82e511d10ee1f47e62a5f5899cec2.png)
③关联模板,点击【列表链接】抽取,关联模板 02。
![](https://static001.geekbang.org/infoq/8f/8f6891b4acbe0ae28038be137c9d5cec.png)
4.数据抽取
①链接抽取完成进入数据页,在原有模板基础上添加数据抽取,点击【列表模板】然后点击【添加数据抽取】按钮。
![](https://static001.geekbang.org/infoq/1f/1f6bd432ad870530d4de262471acda0c.png)
②此时要完成数据建表的工作:
a.选择【数据建表】,点击【采集数据表结构】中的【+】,即可添加表单,名称可以自定义。
![](https://static001.geekbang.org/infoq/ef/ef1fc00ca124c920f233fac7bcc7f944.png)
b.另外需要注意,每一个表单都需要配置主键字段,需要使用脚本的字段,在高级类型中选择脚本取值才可进行脚本操作。
id 字段设置如下:
![](https://static001.geekbang.org/infoq/ee/ee3fa55525c8ab863f18db881342758a.png)
c.其它字段根据实际需求配置即可。
新闻标题 title 字段配置如下:
![](https://static001.geekbang.org/infoq/c7/c793210534ad7ceb2b583ec3729e27b1.png)
新闻发布时间 stime 字段设置如下:
![](https://static001.geekbang.org/infoq/a9/a904cc4c28d772555ae76baecb8737ed.png)
新闻内容部分 content 字段设置如下:
![](https://static001.geekbang.org/infoq/5d/5d18ff2a771cd58869c6cbf75cc217a7.png)
③将新建好的数据表,关联到模板中去,如下图所示:
![](https://static001.geekbang.org/infoq/1d/1d98e4f2f3f0e89ed41ed3d1d00d4ad9.png)
④填写示例地址
【采集预览】,右键复制任意一条列表链接。
![](https://static001.geekbang.org/infoq/2c/2c277359c89474237f83d8776a96c488.png)
⑤将链接粘贴到本模板示例地址中,并【双击】内置浏览器空白部分,加载本链接。
![](https://static001.geekbang.org/infoq/d2/d29a013a26fe29de8306feb824eb9f98.png)
⑥需要配置哪一个字段,点击该字段,在右侧字段属性中配置即可,如果选择脚本配置的字段,在脚本窗口中进行代码配置。
id 字段:主键字段,采集内容选择【主键】-【网页主键】,主键为当前网页的 MD5 值。
![](https://static001.geekbang.org/infoq/fa/fa7cf3d01322052f06019cd957ec5bb0.png)
title 字段:点击 title,ctrl+鼠标点击设置选区
![](https://static001.geekbang.org/infoq/bf/bfefbfa3213b59748d91de1d17600808.png)
![](https://static001.geekbang.org/infoq/f3/f34c5b2f71598948e7b39225499d5259.png)
stime 字段:点击 stime,ctrl+鼠标点击设置选区
![](https://static001.geekbang.org/infoq/07/07187f7f4fb12e6243eaf730c8337d20.png)
![](https://static001.geekbang.org/infoq/2d/2dde9cf7b9b1ea5a15c184818a9dc394.png)
content 字段:点击 content,ctrl+鼠标点击设置选区
![](https://static001.geekbang.org/infoq/e6/e60ff2445086f0c08eb726c09def3d6c.png)
![](https://static001.geekbang.org/infoq/b3/b3bc55bdab4c78f4968d9c053993e3e2.png)
⑦采集预览
采集预览如下图所示,说明配置成功,可以开始采集。如果有哪个字段或者数据没有出来,再次检查之前配置,正确配置模板。
![](https://static001.geekbang.org/infoq/bf/bf606bf5393dea684885c497e933a8d8.png)
l 采集步骤
模板配置完成,采集预览没有问题后,可以进行数据采集。
1.建立采集数据表
选择【数据建表】,点击【表单列表】中该模板的表单,在【关联数据表】中选择【创建】,表名称自定义,这里命名为 news(注意命名不能用数字和特殊符号),点击【确定】。
![](https://static001.geekbang.org/infoq/a1/a13a931a61beb965c725dd2fde13f294.png)
![](https://static001.geekbang.org/infoq/e6/e695f572a7931d75de80515b05a578ba.png)
创建完成,勾选数据表。
![](https://static001.geekbang.org/infoq/85/8506d8b9d49a6113b6a3d223160b25ff.png)
2.开始采集
选择【数据采集】,勾选任务名称,点击【开始采集】,则正式开始采集。
![](https://static001.geekbang.org/infoq/61/610e9f6c1b7c1bee4c3253c4d7e535ac.png)
![](https://static001.geekbang.org/infoq/fc/fc2a56e2e510cadbbe20275bfa448504.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
采集进行中...
![](https://static001.geekbang.org/infoq/0e/0ec8317db74b1d4ab76871a3a880ca5e.png)
3.导出数据
采集结束后,可以在【数据浏览】中,选择数据表查看采集数据。
![](https://static001.geekbang.org/infoq/ec/ecd5f989cfece4e3abe11ded7b311859.png)
![](https://static001.geekbang.org/infoq/d7/d7ca0f8c712806cc0fac63941223a56b.png)
采集结束后,可以在【数据浏览】中,可以导出数据。
![](https://static001.geekbang.org/infoq/5a/5a34dd0db7ef090bf26a1f9c40a0458f.png)
导出的文件打开如下图所示:
![](https://static001.geekbang.org/infoq/96/963233167f2f3bdc34c1faaafd98ab8a.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
本教程仅供教学使用,严禁用于商业用途!
版权声明: 本文为 InfoQ 作者【前嗅大数据】的原创文章。
原文链接:【http://xie.infoq.cn/article/29743f8ec1109d0512050a2dc】。文章转载请联系作者。
评论