【发布时间】:2020-10-10 18:17:30
【问题描述】:
这是我的 1337x.to 刮刀的 nodejs 代码。我想要做的是首先 scrape 搜索结果很好,然后从这些搜索结果中,获取种子的 url 并 scrape 似乎是磁铁 url 链接作为一个不同的函数工作,但是当我尝试在 getTorrent 函数中 scrape 那些值时,它只是返回 undefined 并且我似乎无法存储这些值。谁能帮我这个?我只需要在返回之前将磁力链接存储在数组中。
这是代码:
const axios = require('axios')
const cheerio = require('cheerio')
const baseurl = 'https://1337x.to'
var magneturl = 'sdkllfklajds'
var arr = []
var nameList = []
var urlList = []
var seedList = []
var leechList = []
var dateList = []
var sizeList = []
const getMagnet = (torurl) => {
axios.get(torurl).then(({data}) => {
var $ = cheerio.load(data)
$ = cheerio.load($('.dropdown-menu').html())
magneturl = $('a').last().attr('href')
})
return magneturl
}
const getTorrent = (searchurl) => {
axios.get(searchurl).then(({ data }) => {
const $ = cheerio.load(data)
$('.coll-1.name').each((index, element) => {
var tag = $(element).children('a').last()
var name = tag.text()
var url = tag.attr('href')
getMagnet(url).then((data) => {
urlList.push(data)
})
if(name.length) {
nameList.push(name)
//urlList.push(url)
}
})
$('.coll-2').each((index, element) => {
var seeds = $(element).text()
if(index > 0)
seedList.push(seeds)
})
$('.coll-3').each((index, element) => {
var leeches = $(element).text()
if(index > 0)
leechList.push(leeches)
})
$('.coll-date').each((index, element) => {
var dateAdded = $(element).text()
if(index > 0)
dateList.push(dateAdded)
})
$('.coll-4.size').each((index, element) => {
var size = $(element).text().replace($(element).children('span').text(), '')
sizeList.push(size)
})
var i = 0
while(i < 20) {
arr.push({name: nameList[i], url: baseurl + urlList[i], seeds: seedList[i], leeches: leechList[i], dateAdded: dateList[i], size: sizeList[i]})
i = i + 1
}
})
return arr
}
module.exports = {getTorrent, getMagnet}
【问题讨论】:
标签: javascript jquery node.js axios cheerio