无法从特定选择

时间:2018-03-28 19:38:45

标签: javascript jquery node.js

我使用cheerionodejs来抓取网站上所有可用的国家/地区,基本上我做了:

const rp = require('request-promise');
const cheerio = require('cheerio');

const options =
{
    uri: 'https://uk.soccerway.com/',
    transform: function(body)
    {
      return cheerio.load(body);
    }
};

rp(options)
  .then(($) =>
  {
    $('#navbar-left > div:eq(2) > select > option').each(function() 
    {
      console.log($(this).val());
    });
  }).catch((err) =>
  {
      console.log(err);
  })

我想得到Club Domestic的所有coutnries,不幸的是我的代码返回了这个:

  

SyntaxError:不匹配的伪类:eq

那是什么?

更新

新代码(迭代不会启动):

request('https://uk.soccerway.com/', function(err, resp, html)
{
  if (!err)
  {
    const $ = cheerio.load(html);

    var countriesMenu = find($, '#navbar-left > div:eq(2) option');

    $(countriesMenu).each(function()
    {
      console.log($(this).val());
    });
  }
});

2 个答案:

答案 0 :(得分:2)

如评论中所述,cheerio不支持psuedo-class:eq。你不是在这里使用jQuery,$是cheerio对象。

以下是您可以使用的插件:https://github.com/watson/cheerio-eq

答案 1 :(得分:0)

:eq伪类未实现。但是,调用.eq()应该可以工作。