吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3672|回复: 22
收起左侧

[Python 转载] 百度小说全文爬取

[复制链接]
aiyamaya 发表于 2022-5-9 19:21
本帖最后由 aiyamaya 于 2022-5-10 09:28 编辑

输入小说的ID号,该ID号可在 网址中的id号.png 中获得。
默认存放路径D:/小说
下载出现1KB文件情况,主要是因为收费章节的原因。目前只能下载免费章节(收费如何下载,还没弄明白
[Python] 纯文本查看 复制代码
import time,os
import requests
import asyncio
import aiohttp
import aiofiles

async def get_chapters_ids(n_id):
    book_url = f'https://dushu.baidu.com/api/pc/getCatalog?data=%7B"book_id":{n_id}%7D'
    t_start = int(time.time())
    tasks =[]
    with requests.get(book_url) as respon:
        dic = respon.json()
        for i in dic['data']['novel']['items']:
            title = i['title']
            chapter_id = i['cid']
            tasks.append(asyncio.create_task(get_chapters(n_id,title,chapter_id)))
        await asyncio.wait(tasks)
    t_over = int(time.time())
    print('下载完毕!')
    print('共用时:',t_over-t_start,'秒')

async def get_chapters(n_id,title,chapter_id):
    chapter_url = f'https://dushu.baidu.com/api/pc/getChapterContent?data=%7B"book_id":"{n_id}","cid":"{n_id}|{chapter_id}","need_bookinfo":1%7D'
    # print(chapter_url)
    async with aiohttp.ClientSession() as req:
        async with req.get(chapter_url) as respon:
            dic = await respon.json()
            async with aiofiles.open(f'D:\小说\{title}.txt',mode='w',encoding='utf-8') as f:
                await f.write(dic['data']['novel']['content'])
    print(title,'下载完成')

if __name__ =='__main__':
    if not os.path.exists(r'd:\小说'):
        os.mkdir(r'd:\小说')
    novel_id = input('输入小说编号:')
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    loop.run_until_complete(get_chapters_ids(novel_id))

免费评分

参与人数 3吾爱币 +3 热心值 +2 收起 理由
haolongbo + 1 + 1 用心讨论,共获提升!
lanlano + 1 + 1 我来支持一下吧。。不能磨灭了楼主的激情
bilibini + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

waweiggfnh 发表于 2022-5-10 09:12
爬取百度小说图1KB.jpg
爬取百度小说图1KB2.jpg
爬取百度小说图问题.png
测试能下载,但是大都是1KB,内容不全
 楼主| aiyamaya 发表于 2022-5-10 09:26
waweiggfnh 发表于 2022-5-10 09:12
测试能下载,但是大都是1KB,内容不全

1kb的是收费内容,忘记说了,这个只能下载免费章节
Yun3369 发表于 2022-5-9 20:20
erhu70b 发表于 2022-5-9 20:21
怎么用呢
woawapj 发表于 2022-5-9 20:22
学习一下了
ZhuanZhuYuIT 发表于 2022-5-9 20:26
感谢分享
bilibini 发表于 2022-5-9 20:32
感谢分享,先收藏起,以后应该可以用到
haiyangnanzi 发表于 2022-5-9 20:40
小白不会用,哎
tianxinnuhuo 发表于 2022-5-9 21:18
这个就不会用了
zhongzhi72 发表于 2022-5-9 21:21

小白不会用,哎
ych13846701169 发表于 2022-5-9 22:09
太需要了,谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-27 03:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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