core/bin/reptile/taduo_net/find.js
2022-02-01 16:41:21 +08:00

66 lines
2.3 KiB
JavaScript

const urlencode = require('urlencode-gb2312-ignore');
const cheerio = require('cheerio')
let axios = require('axios')
var iconv = require('iconv-lite')
let mainurl = "https://www.taduo.net"
let gethtml = (name) => {
return new Promise(async (res, rej) => {
name = urlencode(name,"gb2312")
let seach = `orderby=1&myorder=1&tbname=mh&tempid=3&show=title%2Cplayer%2Cplayadmin%2Cbieming%2Cpinyin&keyboard=${name}&Submit=%CB%D1%CB%F7`
axios.post(mainurl + "/e/search/index.php",seach,{
headers:{
"Content-Type": "application/x-www-form-urlencoded"
},
responseType: "arraybuffer"
}).then((r)=>{
// console.log(r.data)
// res(r.data)
r.data = iconv.decode(r.data,"gb2312")
res(r.data)
})
})
}
let get = (name) => {
return new Promise(async (res,rej)=>{
try {
let html;
await gethtml(name).then((res) => {
html = res
})
// console.log(html)
let $ = cheerio.load(html)
let list = []
await $("#dmList ul li").each((index, ele) => {
let item = cheerio.load($(ele).html(), { decodeEntities: false })
let name = item("dl dt a").html()
let date = item("dl dd p").eq(0).html()
let url = mainurl + item("dl dt a").attr("href")
let update = item("dl dd p").eq(1).html().replace("<em>", "").replace('</em><span class="red">', "").replace('</span></p>', "").replace("</span>", "")
date = date.replace("<em>", "").replace('</em><span class="red">', "").replace('</span></p>', "").replace("</span>", "")
// console.log({
// date,
// name,
// url,
// update
// })
let l = {
date,
name,
url,
update
}
list.push(l)
})
list = {name:"塔多漫画",list}
console.log(list)
res(list);
} catch (error) {
rej([])
}
})
}
module.exports = get