很多记者没有注意到,在浏览器的右键菜单的“复制”和“另存为”功能下面还有一个“检查元素”的选项。
但实际上,这个很少被记者使用的“检查元素”的选项帮你从网站源代码中挖掘出大量的隐藏信息,揭示出图像背后的原始数据,并下载到一些没有办法直接保存的图像和视频。
对这个工具和 HTML 代码的基础知识也可以帮助你从任何网页上抓取数据,而不需要你有任何电脑专业的背景。
在 IRE21 上,记者和培训师萨曼莎·桑恩(Samantha Sunne)为几乎没有任何编码经验的记者分享了如何使用两个简单的工具——“检查元素”工具和 Google 表格,从网页上检索和分析数据的技巧。
以下是使用这些工具从网页上提取和分析数据的五种方法。
1. 检查网站的源代码,以提取链接、照片和嵌入内容
每个浏览器都在“开发工具”或“开发”选项卡中提供了一个网页检查工具。
“浏览器的工作原理是,读取网页‘源代码’,并将读取后的结果显示给用户,”桑恩解释说。
在教学中,桑恩详细介绍了“检查元素”工具在不同浏览器上的显示方式。例如,在 Safari 浏览器中,你可以右击你想检查的页面区域,然后选择”检查元素“。
有了它,你就能找到嵌入到当前网页中的所有链接和元素,你还可以阅读替代文本(alt text)——一种用于描述页面上图像或其他元素的文本,其中可能包括图像中的人名、拍摄的地点等等。
你可以参考 HTML 指南,找到识别嵌入图片(<img src=”url”>)、链接(<a href=”url”>)或其他元素的代码。
2. 从网站(甚至是Instagram)保存图像和视频
“使用网页检查工具,可以帮你找到许多很难找到或下载到的文件。”桑恩说。
“检查元素”可以帮你找到网页中的原始文件,甚至从 Instagram 等网站下载图片或是哦,即使这些网站默认不允许你下载操作。只需要三个简单的步骤就可以操作:
- 右击你想下载的照片或视频,选择“检查”,再进行页面搜索(control/command + F),寻找”<video>”标签,这个标签常常会包住视频地址原始地址。
- 网页检查器将找到源代码中所有出现”<video>”的地方,然后将鼠标悬停在突出显示的链接上,以找到前面有”src=”打头的源链接。或者,你也可以看下网页中所有的多媒体元素。
- 最后,点击多媒体元素的原始链接,在新的浏览器标签中打开它们,并通过右键下载。
3. 从不断更新的电子表格中收集数据
你已经找到了一个对你的调查至关重要的数据库,但它位于一个网页上,你很难把数据下载成电子表格。这个时候你可以怎么办?
“直接复制粘贴是可以的。”桑恩说:“但你获得的信息不是即时更新的,也无法提供额外的信息,例如说其中的超链接指向。”
这时,网页检查器再次派上了用场。有了它,你可以识别存储在网页上的数据类型,并将其导入 Google 工作表,然后以不同的方式进行分析或可视化。
在下面的例子中,我将使用网页检查器从欧洲疾病预防和控制中心抓取新冠疫情的状况。
我们可以通过以下步骤来抓取表格数据:
- 在你想复制的表格或其他数据库上点击右键,选择“检查”,找出它是哪种HTML元素——常见的元素有表格(table)、子弹列表(ul)和链接(a)。
- 网页检查器将会高亮显示出网页上的元素,并显示出相应的源代码。
- 新建一个 Google 工作表,并在其中填入以下公式,写上你想提取的元素——这个例子中是“表格”(table),如果你要提取的页面上只有一个表,ID 将是0;如果有两个,第二个表的ID将是1,以此类推。
=ImportHTML(“url”,“table”,”ID”)
- 当你输入=ImportHTML的公式时,Google 工作表会给你提供了一个例子和解释,说明这个公式的功能和它可以检索的数据类型。
=ImportHTML(“https://www.ecdc.europa.eu/en/geographical-distribution-2019-ncov-cases”,“table”,0)
- Google 工作表将自动用从网页上抓取的数据来填充这张表格,然后你可以根据需要组织、过滤和对数据进行可视化。
“这个公式是使用源代码来嵌入表格,” 桑恩说。她在自己编写的教程中对此做了更详细的介绍。
4. 提取特定类型的数据
如果你要想搜索或抓取一个页面上数据表中的数据,应该怎么做呢?
你也可以通过使用 =ImportXML(“url”, “xpath_query”) 公式来实现。
桑恩解释说:“XPATH 基本上就相当于一个页面上的数据地址。你可以通过它检索数据,即使数据还没有被格式化,也能在网页上生成一个整齐的表格。
在小组讨论中,桑恩展示了一些有用的 XPATHs 例子,例如使用它来搜索在所有标题中包含特定国家名称的标题。
如果想要追踪你所调查的主题,也可以用这个公式从新闻网站爬取 URL 和标题。
=IMPORTXML(“url”,”//CLASS[contains(“country”)]”)
=IMPORTXML(“https://www.nytimes.com/section/world”,”//h2“) 可以把页面中所有的“h2”(二级标题)元素抓取到 Google 工作表中。
=IMPORTXML(“https://www.nytimes.com/section/world”,”//h2[contains(.,’China’)]”) 将只抓取包含“China”一词的 h2 元素。
例如,我们可以用这个方法爬取《纽约时报》国际版中所有包含“China”一词的头条。
- 检查网页,确定你要找的文本类型(”p”代表段落,”h1″代表一级标题,”h2″代表二级标题……)
- 在公式中插入你要找的单词。
- 这样,相关数据每天都会自动加载到你的谷歌工作表中。
5. 免费应用
如果上面这些还不能说服你学习一点 HTML,你仍然可以尝试免费的浏览器扩展或应用程序,虽然它们可以自定义抓取/搜索的空间有限,但可以让你省去写代码行和制作电子表格的麻烦。
桑恩推荐了以下这些应用:
- Parsehub: 一个能从任何网站抓取数据的桌面应用。由于其界面友好,不需要任何编码知识就可以使用。还可以透过它将数据上传到 Excel和 JSON,以及导入到 Google 表格和 Tableau 分析平台。
- Outwit: 除了他们的网页抓取器,Outwit 还提了建立自定义的抓取器的服务。
- WebScraper: 对于那些不喜欢处理代码的人来说,WebScraper 是一个简单的解决方案,它能够根据网站的结构和你想提取的数据点来建立一张站点地图。
Smaranda Tolosano 为全球深度报道网管理翻译及合作关系。她曾在摩洛哥为汤森路透基金会撰写报道。