查看: 464|回复: 2

小说下载器后端版,内网均可访问,附win成品及go源码

[复制链接]
发表于 2023-9-22 08:08 | 显示全部楼层 |阅读模式
非法程序、 2023-9-22 08:08 464 2 显示全部楼层
学习JS所写,没想好怎么实现前端一键全部下载,
不提供其它语言源码,感兴趣自行参考源码实现!
  1. package main    //go build -ldflags "-s -w"

  2. import(`io`;`regexp`;`strings`;`runtime`;`os/exec`;`net/http`;`crypto/tls`)

  3. var(sdyd=map[string]string{

  4. `Referer`:`https://m.sdyd.org/`,

  5. `Content-Type`:`application/x-www-form-urlencoded`,

  6. `Cookie`:`8av__v=1; 8av_t=5; 8av_cdn=https%3A%2F%2F23.225.160.18%2Fxcdn8%2F; 8avlatest=6t67; 8avauth=%012169526422943f9IjQ2NTYyOVx0NmE0ODJjZGZcdGNjZGRielx0MTMwMzA1MDYyMTBcdDM1NTg4MzU1OTVAcXEuY29tXHQxNjk3ODU2MjI5XHQi`,

  7. `User-Agent`:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36`}

  8. uri=`https://m.sdyd.org`

  9. r1=regexp.MustCompile(`<div class="sc-title">.*?<span><a href="/html/(\w+).html" target="_blank">(.*?)</a>`)

  10. r2=regexp.MustCompile(`<li>⑵ <a href="(.*?)"`))

  11. func main(){

  12. if runtime.GOOS==`windows`{

  13. exec.Command(`cmd`,`/c`,`start`,`http://localhost/`).Start()

  14. }else if runtime.GOOS==`linux`{

  15. exec.Command(`bash`,`-c`,`x-www-browser`,`http://localhost/`).Start()

  16. }else if runtime.GOOS==`darwin`{

  17. exec.Command(`open`,`http://localhost/`).Start()}

  18. http.HandleFunc(`/`,Search)

  19. http.HandleFunc(`/bk`,Book)

  20. http.ListenAndServe(`:80`,nil)}



  21. func Search(w http.ResponseWriter,r *http.Request){

  22. if r.Method==`GET`{

  23. io.WriteString(w,`<!DOCTYPE html><html><head><title>Search</title><style>

  24. ul,ol,li{list-style-position:inside;text-align:center}

  25. @font-face{font-family:t3;src:url(http://23.225.160.18/xcdn8/ft/y3.woff) format('woff2')}.y3{font-family:t3}

  26. body{background-image:url([img]http://img1.imgtp.com/2023/09/21/NtHOWm9r.jpg[/img]);background-attachment:fixed;background-repeat:no-repeat;background-size:cover}</style></head><body><div id=div align=center><input type=search name=s id=s><input id=ss type=button value=Search><ol id=ol></ol></div><script>ss.onclick=()=>{

  27. let xhr=new XMLHttpRequest()

  28. xhr.open('POST',location.href)

  29. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')

  30. xhr.send('s='+s.value)

  31. xhr.onload=()=>{

  32. ol.innerHTML=''

  33. let re=xhr.response.split('||')

  34. for(let i=0;i<re.length-1;i+=2)ol.insertAdjacentHTML('beforeend','<li><a href=bk?s='+re[i]+'>'+re[i+1]+'</a></li>')}}</script></body></html>`)

  35. }else{r.ParseForm()

  36. c:=&http.Client{Transport:&http.Transport{TLSClientConfig:&tls.Config{InsecureSkipVerify:true}}}

  37. q,_:=http.NewRequest(`POST`,uri+`/search/`,strings.NewReader(`keyword=`+r.Form[`s`][0]+`&submit=`))

  38. for k,v:=range sdyd{q.Header.Set(k,v)}

  39. p,_:=c.Do(q)

  40. defer p.Body.Close()

  41. b,_:=io.ReadAll(p.Body)

  42. s1:=r1.FindAllStringSubmatch(string(b),-1)

  43. for i:=0;i<len(s1);i++{io.WriteString(w,s1[i][1]+`||`+s1[i][2]+`||`)}}}



  44. func Book(w http.ResponseWriter,r *http.Request){

  45. r.ParseForm()

  46. c:=&http.Client{Transport:&http.Transport{TLSClientConfig:&tls.Config{InsecureSkipVerify:true}}}

  47. q,_:=http.NewRequest(`GET`,uri+`/downpage/`+r.Form[`s`][0]+`/?sure=2`,nil)

  48. for k,v:=range sdyd{q.Header.Set(k,v)}

  49. p,_:=c.Do(q)

  50. b,_:=io.ReadAll(p.Body)

  51. defer p.Body.Close()

  52. s1:=r2.FindSubmatch(b)

  53. http.Redirect(w,r,dl(uri+string(s1[1])),302)}

  54.   

  55. func dl(u string)string{

  56. c:=&http.Client{Transport:&http.Transport{TLSClientConfig:&tls.Config{InsecureSkipVerify:true}},CheckRedirect:func(req *http.Request,via []*http.Request)error{return http.ErrUseLastResponse}}

  57. q,_:=http.NewRequest(`GET`,u,nil)

  58. for k,v:=range sdyd{q.Header.Set(k,v)}

  59. p,_:=c.Do(q)

  60. defer p.Body.Close()

  61. return p.Header.Get(`Location`)}
复制代码


QQ截图20230922080752.jpg

1.zip

2.19 MB, 下载次数: 17, 下载积分: 牛币 -2 个

发表于 2023-9-22 08:47 | 显示全部楼层
tocabd 2023-9-22 08:47 显示全部楼层
感谢楼主分享!
回复

使用道具 举报

发表于 2023-9-26 13:00 | 显示全部楼层
zbzyyds 2023-9-26 13:00 显示全部楼层
签到顶贴6666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表 发新帖

快速回复 返回顶部 返回列表