【问题标题】:Scrape all list <li> items in an <ul> using node js使用节点 js 抓取 <ul> 中的所有列表 <li> 项目
【发布时间】:2015-07-21 12:49:15
【问题描述】:

我正在尝试获取具有相似类属性的列表中的所有内容。我想使用cheerio、requests 和jquery 来做到这一点。

列表元素的格式为:

<a href="/anime/12-oz-mouse" class="ui-btn ui-btn-icon-right ui-icon-carat-r">12 oz. Mouse</a>

所以我尝试使用 a.ui-btn ui-btn-icon-right ui-icon-carat-r 来选择所有元素并打印它们。当我运行以下命令时,我没有看到任何结果,关于如何显示所有列表元素的任何想法;我特别想要漫画的名字here

var request = require('request');
var cheerio = require('cheerio');

request('http://m.watchcartoononline.com/cartoon-list', function (error, response, html) {
  if (!error && response.statusCode == 200) {
    var $ = cheerio.load(html);
    $('a.ui-btn.ui-btn-icon-right.ui-icon-carat-r').each(function(i,e){
        console.log("cartoon " + $(this).text());
    });
  }
});

【问题讨论】:

  • 你真的把cheerio load的结果赋值给jQuery变量$吗?
  • @jasonscript 这是文档中建议的方法。

标签: javascript jquery html node.js


【解决方案1】:

问题是,这些类是在页面加载后使用脚本添加的,所以页面源没有这些类。

你可以尝试的是

request('http://m.watchcartoononline.com/cartoon-list', function (error, response, html) {
  if (!error && response.statusCode == 200) {
    var $ = cheerio.load(html);
    $('ul[data-role="listview"] > li > a[href]').each(function(i,e){
        console.log("cartoon " + $(this).text());
    });
  }
});

【讨论】:

  • 谢谢,这解决了我遇到的问题。
猜你喜欢
  • 2015-02-15
  • 2021-12-31
  • 2012-10-20
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 2021-09-01
  • 1970-01-01
相关资源
最近更新 更多