javascript - 无法从特定选择中获取选项

标签 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 的所有国家/地区,不幸的是我的代码返回以下内容:

SyntaxError: unmatched pseudo-class :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());
    });
  }
});

最佳答案

正如评论中提到的,cheerio 不支持伪类 :eq。您在这里没有使用 jQuery,$ 是 Cheerio 对象。

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

关于javascript - 无法从特定选择中获取选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49542828/

相关文章:

javascript - 如何避免在 Google Map API v3 自定义 map 和标记上重复

javascript - jQuery.data 和动态变化的 HTML5 自定义属性

node.js - Typescript - 静态变量的未定义错误

javascript - React Native with react-navigation and Redux - 如何实现全局可用的 'Sign Out' 按钮

javascript - 下拉复选框中的文本对齐方式

javascript - 调试 JavaScript 和 CSS 的最佳方法是什么?

jquery - 当 DIV 进入 View 时添加类

javascript - 由于 diapo slider ,主 slider 不工作

javascript - 通过 socket.io 发送 Float32Array

javascript - Node.JS:FFmpeg 管道视频编码未创建缩略图