javascript - 使用 NodeJS 进行抓取

标签 javascript node.js cheerio requestjs

我需要从循环中的url中提取链接,所以基本上我需要再次执行该函数,但我不知道如何用nodejs来实现。

var request = require('request');
var cheerio = require('cheerio');
var searchTerm = 'baloncesto';
var url = 'http://mismarcadores.com/' + searchTerm;

request(url , function(err,resp,body){
    $ = cheerio.load(body);
    links = $('a');
    $(links).each(function(i,link){
        console.log(url+$(link).attr('href'));
    }
   )
})

我的问题是关于如何从此数组中提取链接,因为此代码工作正常(此代码在控制台中显示链接),但我需要抓取这些链接。

结果将抓取每个内部的网址。

最佳答案

var request = require('request');
var cheerio = require('cheerio');
var searchTerm = 'baloncesto';
var url = 'http://mismarcadores.com/' + searchTerm;
request(url , function(err,resp,body){
    $ = cheerio.load(body)
    var allLinks = []
    links = $('a');
    $(links).each(function(i,link){
        console.log(url+$(link).attr('href'))
        var currentLink = url+$(link).attr('href')
        allLinks.push(currentLink)
        if (i == links.length-1){
          useLinks(allLinks)
        }
    }
   )
})

function useLinks(allLinks){
  console.log(allLinks)
}

如果您询问如何从 Cheerio 收到的链接中提取 url,那么您已经在这样做了。如果您想在请求完成后在其他地方使用它们(例如再次抓取),请将它们存储在数组中,并在迭代最后一个链接后调用函数来使用该数组。

关于javascript - 使用 NodeJS 进行抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54563879/

相关文章:

Javascript 树无法正常工作

javascript - 通过使用 Javascript 删除类来触发 CSS 转换

javascript - 使用 pug 文件在 html 中显示 JS 文件中的变量

javascript - 从 Coffee(或 Type)翻译为 vanilla js 语言

javascript - Node.js fs Cheerio 读写多个文件

javascript - 推送前 knockout 检查 observableArray 中是否存在

javascript - Node.js 请求 - 处理多个 POST 请求

javascript - NodeJS 模块 'request' 返回一些符号而不是 html

node.js - 如何验证cheerio是否找不到元素?

javascript - 谷歌浏览器用户脚本无法正常工作