大神论坛

找回密码
快速注册
查看: 525 | 回复: 1

[原创] 笔趣阁小说下载器 (附成品工具)

主题

帖子

18

积分

初入江湖

UID
109
积分
18
精华
威望
36 点
违规
大神币
68 枚
注册时间
2021-06-20 15:14
发表于 2021-08-12 22:31
本帖最后由 along 于 2021-08-12 22:31 编辑

在笔趣阁官网搜自己想下的 小说 https://www.biqugeu.net。 进入目录界面 网址会变成类似https://www.biqugeu.net/32_32836/这种,复制32_32836这就是ID,然后输入要保存的路径,最好弄个文件夹,我弄的是先把每章单独下下来,最后合并一个文本。个别小说会遗漏章节,我查不出来 ,不过也给提示了。

代码如下,有啥问题列位自己改啊

import aiofiles,aiohttp,asyncio,time,os
from lxml import etree
def cc(rd,dz):
with open(rf'{dz}\quanwen.txt','a',encoding='utf-8') as f:
f.write(f'{rd}\n')
print('搞了一章')
def dq(aa,dz):
for i in range(1,aa+1):
try:
with open(rf'{dz}\{i}.txt','r+',encoding='utf-8') as f:
a=f.read()
cc(a,dz)
os.remove(rf'{dz}\{i}.txt')
print("删了一章")
except:continue
async def get(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
res=await resp.text()
return res
async def xr(url,aa,name,dz):
try:
res=await get(url)
ress=etree.HTML(res)
a=ress.xpath('//*[@id="content"]/text()')
async with aiofiles.open(rf'{dz}\{aa}.txt','a',encoding='utf-8') as f:
await f.write(f'{name}\n')
for i in a:
async with aiofiles.open(rf'{dz}\{aa}.txt','a',encoding='utf-8') as f:
await f.write(i.strip())
print(f'第{aa}章下好啦')
except:print(f'第{aa}章有问题,跳过了,地址是{url}')

async def main():
id=input("请输入该书的代码:")
dz=input("请输入要保存的文件夹路径:")
aa=0
taks=[]
new_url=f'https://www.biqugeu.net/{id}/'
res=await get(new_url)
ress=etree.HTML(res)
a=ress.xpath('//*[@id="list"]/dl//a/@href')
name=ress.xpath('//*[@id="list"]/dl//a/text()')
for i in range(12,len(a)):
aa+=1
urll=f'https://www.biqugeu.net{a[i]}'
new_name=name[i]
taks.append(asyncio.create_task(xr(urll,aa,new_name,dz)))
await asyncio.wait(taks)
dq(aa,dz)
print('全部搞定')

if __name__=='__main__':
time1=time.time()
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
time2=time.time()
print(f'下载完成啦,一共用了{time2-time1}s')



下方隐藏内容为本帖所有文件或源码下载链接:

游客你好,如果您要查看本帖隐藏链接需要登录才能查看, 请先登录

主题

帖子

7

积分

初入江湖

UID
465
积分
7
精华
威望
14 点
违规
大神币
68 枚
注册时间
2023-03-01 16:03
发表于 2024-02-01 09:24:48.0

666

返回顶部