打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
给“编程小白”的数据抓取教程

原标题:给“编程小白”的数据抓取教程

数据抓取往往是信息可视化制作的入门功课,但由于编程是它的基础,这不免让技术薄弱的记者朋友无从下手。独立调查记者、数据新闻记者Samantha Sunne对这种情况了如指掌,所以在NICAR的2018年会议中,她为“编程小白”们设计了一套简易教程

一句话概括,数据抓取就是从网页中把你想要的数据扒下来并整合在一起的操作。数据抓取技术人员有两种称呼,一个是Extractor,一个是Crawler,前者是从单个网页上扒数据,后者是多个。

不管我们的编程知识掌握多少,还是要对HTML有个基本认识。HTML是一种标记语言,能够被网页读取,通常情况下,我们能看到的网页界面是这样的:

这是网页读取并可视化后的结果。HTML是如下图,对于“编程小白”们来说,这就是一团不知名字符。

但其实,有时人类也能读懂它的语言。老布什的次子杰布·布什曾在他的竞选网站上发表参加2016总统选举的声明,然而发表不到一天,一名《纽约时报》的记者就发现,此声明的页面代码中竟被插入了电影《虎胆龙威》的情节概述。这部影片的英文名称叫“Die Hard”。

这只是个隐蔽的玩笑,言归正传。

深度君接下来要介绍Sunne提及的利器之一:使用Google电子表格的IMPORTHTML公式来抓取数据。

HTML的内容一般被包裹在标签里,如:

content content

有些标签很直观,比如说“表格”:

Here is my table, right here inside these table tags.

假设你想把一个页面上的某类内容扒下来,就可以求助下面这个公式:

=ImportHTML(“url”, “element”, number of element)

“url”是这个页面的链接;

“element”指代的是HTML标签,比方说“表格”;

number of element指的是在这个页面中,目的标签的序列。

HTML有很多标签,甚至同样的标签内容也会有不同的缩写,需要时,你就得求助HTML字典了。字典链接:https://www.w3schools.com/tags/

来举两个具体的例子。

例1.

运用上面提到的公式,我们试试把网站sample.com上的第一个表格抓取出来。

=importHTML(“sample.com”,”table”,0)

用上面这行公式就能完成了。需要注意的是,“0”代表的是电脑语言的第一个,以此类推。

同样,如果不清楚你扒的数据的标签和序列具体是什么,可以单击右键,从源代码中把它们找出来。

例2.

假设我们想从IRE(调查记者与编辑协会)的招聘职位列表页面中,把所有的空缺职务扒下来。

那么已有的信息为:

url: https://www.ire.org/jobs/

标签:table

在Google Sheets公式栏输入以下公式表格即可导入。

=IMPORTHTML(“https://www.ire.org/jobs/” , “table”)

这个公式还能用于导出网页的列表(lists),但是要注意,这个公式提取出的只是本页面上出现的第一个列表。如果你不能确保这个页面上有列表,请查看源代码(Ctrl+F),查找关键词“

”。

这个方法是不是非常简单呢?除了以上这些手动操作,深度君还集结了一个自动抓取数据的工具清单,以适应不同类型的数据抓取需求:

OutWit Hub

这是一个桌面应用程序,可以自动检测出页面中你需要的HTML标签,并抓取出来。

import.io

在静态网页上抓数据方面,可能没有其他应用程序能超过此神器了。它适用于在非常简洁的页面上抓取数据。

DownThemAll

这是个火狐浏览器的插件,可以高亮出页面中的所有网址和图片,并把它们下载下来,但它功能不如Outwit Hub强大。

正在数据抓取入门阶段挣扎的同学们,赶紧上手试试吧!更多资源可以访问全球深度报道网(cn.gijn.org),在“资源库”一栏查看哦!此外,深度网还会精选出时下最新最好用的工具,在每周简报里推送给读者们,点击原文订阅链接。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
易学实用的html入门视频教程
html利用meta标签刷新页面
织梦采集教程
HTML教程(分课详解)
ASP教程之在ASP中使用数据绑定控件显示数据
微信小程序页面如何插入一段html
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服