《使用 superagent 与 cheerio 完成简单爬虫》 挑战问题
发布于 10 年前 作者 samuelgaocn 9678 次浏览 最后一次编辑是 8 年前 来自 问答

我发现用useravatar找到作者的信息。但是请问如何将这个数据插入的到二位数组中的一项中?

$('#topic_list .user_avatar').each(function (idx, element) {
        var $element = $(element);
        items[idx].push({
          author: $element.attr('title'),
        });
      });
  请问除了搜索Class,可以搜索img里面的信息吗?
	  <a class="user_avatar pull-left" href="/user/huanglong">
    <img src="https://avatars.githubusercontent.com/u/670360?v=3&amp;s=120"
         title="huanglong"
3 回复

就像使用jQuery一样呗

$('img[title="ArronYR"]')

Screen Shot 2015-03-18 at 9.21.27 PM.png

发一下我的代码,刚刚写好

 /// <reference path="../typings/express/express.d.ts"/>
/// <reference path="../typings/node/node.d.ts"/>
"use strict";
var express = require('express');
var superAgent = require('superagent');
var cheerio = require('cheerio');
var app = express();
app.get('/', function (req, res) {
    var url = 'https://cnodejs.org';
    var items = [];
    superAgent
        .get(url)
        .set({
        Referer: url,
        'User-Agent': "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:39.0) Gecko/20100101 Firefox/39.0"
    })
        .end(function (err, response) {
        if (err) {
            console.log(err.status);
            return false;
        }
		 // 如果真的出错了,那么response将会是undefined,这时候访问status属性会出错,所以还是
        // 得有上面代码的错误检查
        if (response.status === 200) {
            var $ = cheerio.load(response.text);
        }
        $('#topic_list .cell').each(function (index, item) {
            var $item = $(item);
            // 每一篇文章的url
            var itemURL = url + $item.find('.topic_title').attr('href');
            var author = $item.find('.user_avatar > img').attr('title');
            var title = $item.find('.topic_title').attr('title');
            items.push({
                title: title,
                href: itemURL,
                author: author
            });
        });
        if (items) {
            res.send(items);
        }
    });
});
app.listen(3000);
///# sourceMappingURL=app.js.map
回到顶部