【发布时间】:2019-04-03 20:14:24
【问题描述】:
我正在尝试使用 jQuery 从 Wikipedia 页面中抓取表格。有 51 个相关表,我想计算每个表中的行数。这些桌子没有ID,所以我给了他们一些。这是我的代码:
const curl = require("/Users/ericknowles/node_modules/curl");
const jsdom = require("/Users/ericknowles/node_modules/jsdom");
const url = "https://en.wikipedia.org/wiki/United_States_House_of_Representatives_elections,_2016";
curl.get(url, null, (err,resp,body)=>{
if(resp.statusCode == 200){
parseData(body);
}
else{
//some error handling
console.log("error while fetching url");
}
});
function parseData(html){
const {JSDOM} = jsdom;
const dom = new JSDOM(html);
const $ = (require('/Users/ericknowles/node_modules/jquery'))(dom.window);
// extract all tables from the page
var tables = $(".wikitable");
// the relevant tables don't have IDs, so let's give them some
for(var id = 4; id < 54; id++){
$(tables[id]).attr('id', 'table_'+id);
}
for(var id = 4; id < 54; id++){
currentTable = 'table_' + id;
var rowCount = $('#' + currentTable 'tr').length;
console.log(currentTable + " " + rowCount);
}
}
最后一个循环给我带来了麻烦。如果只有一个表需要计算其行数,我会使用var rowCounty = $('#myTable tr').length;,但我需要循环遍历带有下标的表列表 (table_4, table_5, ... table_53)。我似乎无法正确使用语法。例如,上面的代码给了我:
var rowCount = $('#' + currentTable 'tr').length;
^^^^^^^^^^^^
SyntaxError: missing ) after argument list
(我尝试了很多变化都无济于事。)有什么想法吗?谢谢!!
【问题讨论】:
-
“表格没有ID,所以我给了他们一些。”为什么?
标签: jquery parsing web-scraping html-table