【发布时间】:2018-09-08 20:22:36
【问题描述】:
我正在构建一个非常简单的抓取工具,它应该会获取此 website 上所有可用的国家/地区。国家/地区可在“国内俱乐部”下拉菜单中找到。
就国家而言,我正在使用Nodejs 和cheerio(我不知道那个库是否是一个不错的选择,我是一个非常初学者)。
这是我的代码:
const request = require('request');
var cheerio = require('cheerio');
var cheerioAdv = require('cheerio-advanced-selectors');
request('https://uk.soccerway.com/', function(err, resp, html)
{
if (!err)
{
const $ = cheerio.load(html);
var countriesMenu = cheerioAdv.find($, '#navbar-left > div:eq(2)');
$(countriesMenu).each(function()
{
console.log($(this).val());
});
}
});
基本上我声明了一个名为request 的常量,它执行所有请求GET。然后我声明了另外两个变量,一个包含库cheerio,另一个名为cheerioAdv,应该允许我完成这项任务。
cheerio advanced selector 应该允许我访问特定的标签位置。
基于该解释,我保存了 navbar-left 第二个 div 的内容,其中包含我想要的所有选项国家/地区。
当我使用以下命令启动脚本时:node app.js 没有打印任何内容。我也试过在eq(2)后面加options,我做错了什么?
【问题讨论】:
-
我觉得
eq应该这样使用github.com/cheeriojs/cheerio#eq-i- -
@null 我尝试使用
var countriesMenu = $('#navbar-left > div option').eq(1);没有迭代.. -
试试
$('#navbar-left').eq(1),看看你会得到什么。 -
您需要“查看源代码”才能看到真正存在的内容,如果您经过检查员,您将看到与 Cheerio 看到的不同的东西。