gpt4 book ai didi

javascript - Web 在 Cheerio 中抓取 HTML 表格

转载 作者:行者123 更新时间:2023-11-30 16:14:25 25 4
gpt4 key购买 nike

我有一个网络抓取项目的问题。这是我需要抓取的页面示例:

<table style="position...">
<thead>..</thead>
<tbody id="leaderboard_body">
<tr bgcolor="#155555">..</tr>
<tr bgcolor="#155555">..</tr>
<tr bgcolor="#155555">..</tr>
...
</tbody>
</table>

有关更多详细信息,请访问页面:World Leaderboards

我想访问 tr 标签中的信息,但无法实现。我找不到像这样简单代码的tbody标签,我也不知道为什么:

var cheerio = require("cheerio");
var url = "http://www.dota2.com/leaderboards/?l=french#europe";
var http = require("http");

// Utility function that downloads a URL and invokes
// callback with the data.
function download(url, callback) {
http.get(url, function(res) {
var data = "";
res.on('data', function (chunk) {
data += chunk;
});
res.on("end", function() {
callback(data);
});
}).on("error", function() {
callback(null);
});
}

download(url, function(data) {
if (data) {

var $ = cheerio.load(data);
var content = $('tbody').text();
console.log(content);
}
else
console.log(err);

});

最佳答案

那是因为 HTML 中不存在该表,它是在页面加载后用 javascript 插入的,无法通过传统方式进行抓取。

始终查看源代码,而不仅仅是控制台中的实时 View 。

只做最少的研究表明,该表是根据请求获得的 JSON 构建的

http://www.dota2.com/webapi/ILeaderboard/GetDivisionLeaderboard/v0001?division=europe

这样你就拥有了所有你需要的预格式化和准备好的数据,而无需抓取 HTML

关于javascript - Web 在 Cheerio 中抓取 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35737185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com