我试图从https://www.baseball-reference.com/players/p/pujolal01.shtml中获取球员统计信息,特别是从标准击球和球员值-击球表中获取。
const page = cheerio.load(response.data);
const statsTable = page('#batting_standard');
const rows = statsTable.find('tbody > tr').not('.minors_table').add(statsTable.find('tfoot > tr:first'));
const moreStatsTable = page('#batting_value');
const moreRows = moreStatsTable.find('tbody > tr, tfoot > tr:first');
由于某种原因,它能够检索第一个表(id = 'batting_standard'),但不能检索第二个表(id = 'batting_value'),比如moreStatsTable = null
。这是怎么回事?我不明白为什么cheerio找不到值表,因为它有一个唯一的id。是不是只有我有这个问题?
1条答案
按热度按时间pw9qyyiw1#
展开chitown88的评论,你想要的数据看起来就在评论里面,网站在页面加载后使用JS来显示这些评论的HTML。
Cheerio GitHub issue #423提供了一种从评论中识别和提取数据的方法,我将其应用于您的用例,以查找您想要的特定表格:
输出: