【技术】利用好工具完成网页数据爬取工作
优采云 发布时间: 2022-06-18 18:27【技术】利用好工具完成网页数据爬取工作
爬高质量数据对很多人来说一直是一个比较难的问题,用 python 或其他语言爬自然无可厚非,但如果从一个普通人(非程序员)来讲,还是需要一定的积累和门槛的。今天我就来讲讲如何将这个门槛降低,利用好的工具自然会让我们事半功倍。今天给大家介绍两个工具:优采云数据采集器(爬网页数据);XGeocoding(爬经纬度数据)。(特此申明:这里不做任何广告,大家有更好的工具也可以推荐,个人只是用过这两个工具,比较容易操作上手,仅此而已)
我们开工吧!!!!!
首先以爬取途虎养车全北京门店数据为例,我们的思路是:1.爬取门店主页信息,2.爬取门店详细页信息;3.基于地址爬取经纬度
1爬取门店主页
打开途虎网站,进入“服务门店”,选择“北京市”(所有),会注意到 URL 地址已经跳转到途虎养车北京市服务网点
此时按键 CTRL+U 或“右键查看网页源码”之类的选项(不同游览器可能不一样,无所谓,反正就是看网页源码),比如我想要爬所有门店的地址,我就在源码里查找下,找到内容所在位置。
接下来就对 HTML 的标签做个简单的逻辑理解。理解的目的是让机器能够读懂要提取的内容所在的位置且不会和其他逻辑冲突。还是以这个地址为例,需要提取的字段在
"
是不是很简单?对就是这么简单!接下来就去优采云里再配置下吧
根据工具的配置向导添加需要爬的网址
接下来就是在内容采集规则里创建一个你需要采集的标签逻辑,不多说见下图,把之前的逻辑录入。
到这里一个字段的提取逻辑配置就完成了,我们来看看效果?是不是把所有地址都采集到了,其他字段配置方法一样,这里就不赘述了。
接下来把数据从数据库导出,放到 excel 预览如下,为什么要导到 excle 里呢,因为我们还要基于门店 URL 爬取门店的明细数据(其实高手可以通过一个爬取任务完成这两部数据爬取,以后有机会再介绍怎么配置)。
2
爬门店明细数据
把第一步爬取的“门店 URL ”的数据全部存到一个 txt 文本中
网址采集规则的网址改成保存的文本即可,然后就是一堆规则的配置。。。。。
采集完明细数据后,通过 URL 做两个表的 JOIN (我用的 Mysql,所以一条类似语句就搞定了)
截至目前我们就完成了将结果再次导出 excel(当让也可以在数据库里继续操作,怎么喜欢怎么来)
3
采集经纬度信息
XGeocoding 工具登场了。
首先需要给 XGeocoding 准备数据源,为了让提取的经纬度更准确,这里需要 4 个字段
通过“新建”→“导入文件”→“txt/csv”将准备好的数据导入
将字段 0 选为“同步 ID ”,字段1选为“市/县”,字段 2 为“商户名”,字段 3 为“地址”。坐标类型选择“百度”,当然你有其他地图的 KEY,也可以用其他的地图源
下一步后,会让你选择“工作地图”和输出地图坐标,这里根据实际需求选择,工作地图需要配置过 API KEY 才可以调用(自行去他们的开发者门户上申请)
然后通过“结果”→“导出数据”,预览已经采集到的经纬度数据,将其导出即可。
将导出的数据清理保留 ID、经度、维度即可。通过ID和第二步数据 JOIN 即可。
最后我们通过 Tableau 预览下数据。
总结
本文以采集北京地区的途虎门店信息为样例做了一个数据采集工具操作的基本演示(部分细节没有展开说明,如果有搞不懂的,可以留言),借助工具即使不是 IT 也能自行完成在线数据的爬取。不过还是有几点需要提醒大家:
1.工具一定有局限性,不是所有的事都能做到。
2.采集的结果也会有一定的偏差,这个时候需要通过一些手段和方法去避免偏差。比如本文中,我们用到省份、地址和商店名称做多个数据校验。即使如此还是会有异常数据。因为本身地址重名或接近的情况就存在,当输入信息不足的情况下,错误还是会出现会出现。如需需要进一步提高数据采集。
免费试用 Tableau 10
点击下方阅读原文即可免费试用最新版本 Tableau 10 。下载 Tableau 工作簿,你也可以用数据讲故事!
Tableau中国官方微信定期为您推送最新行业趋势、热点资讯、精彩活动等信息。立即订阅,官方信息一手掌控,更多精彩,更多新鲜,敬请期待!