Compare commits

...

8 Commits

Author SHA1 Message Date
6c48d0be1d fix url 2022-02-01 16:45:29 +08:00
8e5976f226 find review 2022-02-01 16:41:21 +08:00
62eea37625 update gb2312 2022-02-01 16:31:29 +08:00
21533025ba 无头关闭 2021-06-27 00:14:48 +08:00
5137d188eb 修复扑飞 2021-06-27 00:14:24 +08:00
5dc5043525 升级 2020-12-25 15:15:08 +08:00
19ecee362a 修复了扑飞 2020-12-18 15:41:25 +08:00
d80c21fcd8 修复了扑飞 不加载图片 2020-12-18 15:19:33 +08:00
17 changed files with 918 additions and 1015 deletions

2
app.js
View File

@@ -75,7 +75,7 @@ app.use(async (ctx,next)=>{
const bodyParser = require('koa-bodyparser'); const bodyParser = require('koa-bodyparser');
app.use(bodyParser()); app.use(bodyParser());
// console.log(requter()) // console.log(requter().stack)
app.use(requter()); app.use(requter());
app.listen(3004); app.listen(3004);
console.log("http://localhost:3004") console.log("http://localhost:3004")

View File

@@ -5,7 +5,7 @@ find = require("./find")
imglist = require("./picture") imglist = require("./picture")
section = require("./section") section = require("./section")
let name = "新新漫画" let name = "新新漫画"
let version = "20.01.06" let version = "22.02.01"
let type = 1 let type = 1
module.exports = { module.exports = {
name, name,

View File

@@ -29,7 +29,7 @@ let getcontlist = async (text) => {
let gethtml = async (name) => { let gethtml = async (name) => {
name = qs.escape(name) name = qs.escape(name)
let url = `https://so.177mh.net/k.php?k=${name}` let url = `https://so.77mh.in/k.php?k=${name}`
// console.log(url) // console.log(url)
let text = "" let text = ""
await axios.get(url).then((a) => { await axios.get(url).then((a) => {
@@ -45,6 +45,7 @@ let gethtml = async (name) => {
// console.log(error) // console.log(error)
} }
list = {name:"新新漫画",list} list = {name:"新新漫画",list}
console.log(list)
return list return list

View File

@@ -2,7 +2,7 @@ const cheerio = require('cheerio');
const axios = require('axios') const axios = require('axios')
let getscript = async (url) => { let getscript = async (url) => {
let text; let text;
url = "https://www.177mh.net" + url url = "https://www.77mh.in" + url
// console.log(url) // console.log(url)
await axios.get(url).then((res)=>{ await axios.get(url).then((res)=>{
// text = res.text // text = res.text

View File

@@ -5,7 +5,7 @@ find = require("./find")
imglist = require("./picture") imglist = require("./picture")
section = require("./section") section = require("./section")
let name = "古风漫画" let name = "古风漫画"
let version = "19.12.26" let version = "22.02.01"
let type = 1 let type = 1
module.exports = { module.exports = {
name, name,

View File

@@ -22,7 +22,7 @@ let getcontlist = async (text) => {
let gethtml = async (name, page) => { let gethtml = async (name, page) => {
name = qs.escape(name) name = qs.escape(name)
let url = `https://www.gufengmh8.com/search/?keywords=${name}&page=${page}` let url = `https://www.gufengmh9.com/search/?keywords=${name}&page=${page}`
// console.log(url) // console.log(url)
let text = "" let text = ""
await axios.get(url).then((a) => { await axios.get(url).then((a) => {
@@ -38,6 +38,7 @@ let gethtml = async (name, page) => {
// console.log(error) // console.log(error)
} }
list = {name:"古风漫画",list} list = {name:"古风漫画",list}
console.log(list)
return list return list

View File

@@ -2,7 +2,7 @@ const cheerio = require('cheerio');
const axios = require('axios') const axios = require('axios')
let getscript = async (url) => { let getscript = async (url) => {
let text; let text;
url = "https://www.gufengmh8.com" + url url = "https://www.gufengmh9.com" + url
await axios.get(url).then((res)=>{ await axios.get(url).then((res)=>{
// text = res.text // text = res.text
// console.log(res.data) // console.log(res.data)
@@ -27,8 +27,8 @@ let getscript = async (url) => {
// nextChapterData 下一页信息 // nextChapterData 下一页信息
// 页面地址为 基础url + 页信息.id // 页面地址为 基础url + 页信息.id
// console.log({ imghost, chapterPath, chapterImages, pageTitle, pageUrl, prevChapterData, nextChapterData, pageImage }) // console.log({ imghost, chapterPath, chapterImages, pageTitle, pageUrl, prevChapterData, nextChapterData, pageImage })
let down = pageUrl.replace("https://www.gufengmh8.com","") + nextChapterData.id + ".html" let down = pageUrl.replace("https://www.gufengmh9.com","") + nextChapterData.id + ".html"
let upurl = pageUrl.replace("https://www.gufengmh8.com","") + prevChapterData.id + ".html" let upurl = pageUrl.replace("https://www.gufengmh9.com","") + prevChapterData.id + ".html"
list = { imghost, chapterPath, chapterImages, pageTitle, pageUrl, prevChapterData, nextChapterData, pageImage,down,upurl } list = { imghost, chapterPath, chapterImages, pageTitle, pageUrl, prevChapterData, nextChapterData, pageImage,down,upurl }
// console.log(list) // console.log(list)
} }

View File

@@ -39,6 +39,7 @@ let gethtml = async (name, page) => {
// console.log(error) // console.log(error)
} }
list = {name:"漫画DB",list} list = {name:"漫画DB",list}
console.log(list)
return list return list
@@ -49,7 +50,7 @@ let getlist = (name) => {
try { try {
let html; let html;
html = await gethtml(name, 1) html = await gethtml(name, 1)
console.log(JSON.stringify(html)) // console.log(JSON.stringify(html))
res(html); res(html);
} catch (error) { } catch (error) {
rej([]) rej([])

View File

@@ -5,7 +5,7 @@ find = require("./find")
imglist = require("./picture") imglist = require("./picture")
section = require("./section") section = require("./section")
let name = "扑飞漫画" let name = "扑飞漫画"
let version = "20.02.27" let version = "22.02.01"
let type = 1 let type = 1
module.exports = { module.exports = {
name, name,

View File

@@ -1,84 +1,23 @@
const puppeteer = require('puppeteer'); const urlencode = require('urlencode-gb2312-ignore');
const cheerio = require('cheerio') const cheerio = require('cheerio')
let mainurl = "http://www.alimanhua.com/" let axios = require('axios')
var iconv = require('iconv-lite')
let mainurl = "http://www.pufei.cc"
let gethtml = (name) => { let gethtml = (name) => {
return new Promise(async (res, rej) => { return new Promise(async (res, rej) => {
puppeteer.launch({ name = urlencode(name,"gb2312")
headless: true, let seach = `orderby=1&myorder=1&tbname=mh&tempid=3&show=title%2Cplayer%2Cplayadmin%2Cbieming%2Cpinyin&keyboard=${name}&Submit=%CB%D1%CB%F7%C2%FE%BB%AD`
args: ['--no-sandbox', '--disable-setuid-sandbox']
}).then(async (browser) => { axios.post(mainurl + "/e/search/index.php",seach,{
headers:{
const page = await browser.newPage(); "Content-Type": "application/x-www-form-urlencoded"
try { },
await page.goto(mainurl); responseType: "arraybuffer"
} catch (error) { }).then((r)=>{
browser.close() // console.log(r.data)
res([]) // res(r.data)
} r.data = iconv.decode(r.data,"gb2312")
await page.click(".searchtext1") res(r.data)
await page.type(".searchtext1", name);
// const usernameValue = await page.$eval(".searchtext1", el => el.value);
await page.click("#btnSend1")
let openpages = []
let num = 0;
let set = setInterval(async () => {
await browser.pages().then((res) => {
// console.log(res.length)
openpages = res
})
try {
await openpages[2].content().then((r) => {
// console.log(r)
if (r.indexOf("没有搜索到相关的内容") != -1 || r.indexOf("您当前的位置") != -1) {
// console.log(r)
res(r)
clearInterval(set)
browser.close()
} else {
throw error;
}
})
} catch (error) {
num++
// console.log(num)
if (num > 10) {
res([])
clearInterval(set)
browser.close()
}
// console.log(err)
// res([])
}
}, 500);
// setTimeout(async () => {
// await browser.pages().then((res) => {
// // console.log(res.length)
// openpages = res
// })
// try {
// await openpages[2].content().then((r) => {
// // console.log(r)
// res(r)
// })
// browser.close()
// } catch (error) {
// res([])
// browser.close()
// }
// // console.log(a)
// // await page.content().then((r)=>{
// // res(r)
// // })
// }, 2000);
}) })
}) })
} }
@@ -116,9 +55,8 @@ let get = (name) => {
} }
list.push(l) list.push(l)
}) })
// console.log(list)
list = { name: "扑飞漫画", list } list = { name: "扑飞漫画", list }
console.log(list)
res(list); res(list);
} catch (error) { } catch (error) {
rej([]) rej([])

View File

@@ -1,18 +1,24 @@
const cheerio = require('cheerio'); const cheerio = require('cheerio');
const axios = require('axios') const axios = require('axios')
const iconv = require("iconv-lite") const iconv = require("iconv-lite")
let mainurl = "http://www.alimanhua.com" let mainurl = "http://www.pufei.cc"
let getscript = async (url) => { let getscript = async (url) => {
let text; let text;
let imglist = [] // 图片列表 let imglist = [] // 图片列表
let scrurl = "" //图片域名 let scrurl = "" //图片域名
let baseurl = "" //图片基本url let baseurl = "" //图片基本url
// console.log(mainurl)
url = mainurl + url url = mainurl + url
await axios({url,responseType: 'arraybuffer'}).then((res)=>{ console.log(url)
await axios({url,responseType: 'arraybuffer',headers:{
'User-Agent': `Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36`
}}).then((res)=>{
// text = res.text // text = res.text
text = iconv.decode(res.data, 'gbk'); text = iconv.decode(res.data, 'gbk');
// console.log(text) // console.log(text)
// text = res.data // text = res.data
},(err)=>{
// console.log(err)
}) })
let $ = cheerio.load(text); let $ = cheerio.load(text);
$('script').each((index, ele) => { $('script').each((index, ele) => {
@@ -36,7 +42,7 @@ let getscript = async (url) => {
await axios({url : scrurl,responseType: 'arraybuffer'}).then((res)=>{ await axios({url : scrurl,responseType: 'arraybuffer'}).then((res)=>{
// text = res.text // text = res.text
let scr = iconv.decode(res.data, 'gbk'); let scr = iconv.decode(res.data, 'gbk');
scr=scr.substring(scr.indexOf("//分割获取id"),scr.indexOf("console.log(mh[4]);")) scr=scr.substring(scr.indexOf("imgserver = 'http://res.img.220012.net/';"),scr.indexOf("console.log(mh[4]);"))
// scr=scr.substring(scr.indexOf("current_img_base = photosr[page];") + 33,scr.indexOf("if (current_img_base.indexOf('http://') != -1 ) {")) // scr=scr.substring(scr.indexOf("current_img_base = photosr[page];") + 33,scr.indexOf("if (current_img_base.indexOf('http://') != -1 ) {"))
// let WebimgServer = [] // let WebimgServer = []
// let WebimgServerURL = [] // let WebimgServerURL = []
@@ -45,6 +51,8 @@ let getscript = async (url) => {
// console.log(imgserver) // console.log(imgserver)
scrurl = imgserver scrurl = imgserver
// text = res.data // text = res.data
},(err)=>{
// console.log(err)
}) })
for(let i in imglist){ for(let i in imglist){
imglist[i] = "/" + imglist[i] imglist[i] = "/" + imglist[i]

View File

@@ -5,7 +5,7 @@ find = require("./find")
imglist = require("./picture") imglist = require("./picture")
section = require("./section") section = require("./section")
let name = "塔多漫画" let name = "塔多漫画"
let version = "20.01.02" let version = "22.02.01"
let type = 1 let type = 1
module.exports = { module.exports = {
name, name,

View File

@@ -1,79 +1,22 @@
const puppeteer = require('puppeteer'); const urlencode = require('urlencode-gb2312-ignore');
const cheerio = require('cheerio') const cheerio = require('cheerio')
let mainurl = "http://www.taduo.net/" let axios = require('axios')
var iconv = require('iconv-lite')
let mainurl = "https://www.taduo.net"
let gethtml = (name) => { let gethtml = (name) => {
return new Promise(async (res, rej) => { return new Promise(async (res, rej) => {
puppeteer.launch({ name = urlencode(name,"gb2312")
headless: true, let seach = `orderby=1&myorder=1&tbname=mh&tempid=3&show=title%2Cplayer%2Cplayadmin%2Cbieming%2Cpinyin&keyboard=${name}&Submit=%CB%D1%CB%F7`
args: ['--no-sandbox', '--disable-setuid-sandbox'] axios.post(mainurl + "/e/search/index.php",seach,{
}).then(async (browser) => { headers:{
"Content-Type": "application/x-www-form-urlencoded"
const page = await browser.newPage(); },
responseType: "arraybuffer"
// await page.goto(mainurl); }).then((r)=>{
try { // console.log(r.data)
await page.goto(mainurl); // res(r.data)
} catch (error) { r.data = iconv.decode(r.data,"gb2312")
console.log("err") res(r.data)
browser.close()
res([])
}
await page.type(".searchtext1", name);
// const usernameValue = await page.$eval(".searchtext1", el => el.value);
await page.click("#btnSend1")
let openpages = []
let num = 0;
let set = setInterval(async () => {
await browser.pages().then((res) => {
// console.log(res.length)
openpages = res
})
try {
await openpages[2].content().then((r) => {
// console.log(r)
if(r.indexOf("没有搜索到相关的内容") != -1 || r.indexOf("您当前的位置") !=-1){
res(r)
clearInterval(set)
browser.close()
}else{
throw error;
}
})
} catch (error) {
num++
// console.log(num)
if(num > 10){
res([])
clearInterval(set)
browser.close()
}
// console.log(err)
// res([])
}
}, 500);
// setTimeout(async () => {
// await browser.pages().then((res) => {
// // console.log(res.length)
// openpages = res
// })
// try {
// await openpages[2].content().then((r) => {
// res(r)
// })
// browser.close()
// } catch (error) {
// res([])
// browser.close()
// }
// }, 1500);
}) })
}) })
} }
@@ -111,9 +54,8 @@ let get = (name) => {
} }
list.push(l) list.push(l)
}) })
// console.log(list)
list = {name:"塔多漫画",list} list = {name:"塔多漫画",list}
console.log(list)
res(list); res(list);
} catch (error) { } catch (error) {
rej([]) rej([])

View File

@@ -6,11 +6,11 @@ function addMapping(router, mapping) {
if (url.startsWith('GET ')) { if (url.startsWith('GET ')) {
var path = url.substring(4); var path = url.substring(4);
router.get(path, mapping[url]); router.get(path, mapping[url]);
// console.log(`register URL mapping: GET ${path}`); console.log(`register URL mapping: GET ${path}`);
} else if (url.startsWith('POST ')) { } else if (url.startsWith('POST ')) {
var path = url.substring(5); var path = url.substring(5);
router.post(path, mapping[url]); router.post(path, mapping[url]);
// console.log(`register URL mapping: POST ${path}`); console.log(`register URL mapping: POST ${path}`);
} else { } else {
console.log(`invalid URL: ${url}`); console.log(`invalid URL: ${url}`);
} }

View File

@@ -22,6 +22,7 @@ let findlist = async (ctx, next) => {
// } // }
// } // }
console.log("/find111")
let pro = [] let pro = []
let list = [] let list = []
for (let i in reptilelist) { for (let i in reptilelist) {
@@ -54,12 +55,13 @@ let findlist = async (ctx, next) => {
} }
}) })
console.log(1111)
ctx.body = JSON.stringify(list) ctx.body = JSON.stringify(list)
} }
let section = async (ctx, next) => { let section = async (ctx, next) => {
for (let i in reptilelist) { for (let i in reptilelist) {
if (ctx.query.name == reptilelist[i].name) { if (ctx.query.name == reptilelist[i].name) {
console.log(reptilelist[i].name)
ctx.body = await reptilelist[i].section(ctx.query.url) ctx.body = await reptilelist[i].section(ctx.query.url)
} }
} }

View File

@@ -12,7 +12,7 @@
"axios": "^0.19.0", "axios": "^0.19.0",
"cheerio": "^1.0.0-rc.3", "cheerio": "^1.0.0-rc.3",
"fs": "^0.0.1-security", "fs": "^0.0.1-security",
"iconv-lite": "^0.5.0", "iconv-lite": "^0.6.3",
"koa": "^2.11.0", "koa": "^2.11.0",
"koa-bodyparser": "^4.2.1", "koa-bodyparser": "^4.2.1",
"koa-router": "^7.4.0", "koa-router": "^7.4.0",
@@ -22,6 +22,7 @@
"querystring": "^0.2.0", "querystring": "^0.2.0",
"request": "^2.88.0", "request": "^2.88.0",
"superagent": "^5.1.2", "superagent": "^5.1.2",
"urlencode-gb2312-ignore": "^1.0.3",
"webp-batch-convert": "^0.0.8" "webp-batch-convert": "^0.0.8"
} }
} }

1691
yarn.lock

File diff suppressed because it is too large Load Diff