用JavaScript有效地将网页数据提取到数据结构中

Efficiently extracting webpage data into a data structure with JavaScript

我是 JS 的新手,我正在尝试找出执行此任务的最有效方法。

Stack Exchange 在 https://stackexchange.com/sites

保留其成员站点列表

将此数据提取到数据结构中的最有效方法是什么,例如 JavaScript 中的数组或字典?

似乎所有的 stackexchange 站点都是使用相同的框架构建的。如果您查看控制台,您会看到在任何 stackexchange 站点上都定义了 javascript object StackExchange

如果您只想抓取问题中的 link,您可以在浏览器中转到那里,然后在控制台中输入:$('.gv-item-collapsed-wrapper h2').text()

该页面已加载 jQuery,您可以使用它来搜索页面上的元素。该代码片段将以字符串形式向您显示所有网站标题。

更好(但更复杂一点)

var arr = [];
$('.gv-item-collapsed-wrapper h2').each(function(){arr.push($(this).text())});

我只测试了一小部分网站,这似乎有效:

window["StackExchange"] !== undefined

如果你查看任何页面的来源,总会有这样的内容:

StackExchange.ready(function () {

所以基本上你是在检查 class、StackExchange 是否存在,如果存在,很可能(我敢肯定在互联网上,有人 borrowing/stealing 代码或使用相同的名称)StackExchange 站点。