python爬取任意一本小说并保存txt到本地
看小说要钱?免费的有广告?下载txt找不到?
今天分享的程序可以解决以上困扰,学习Python爬虫知识同时还可以得到你当前想看的小说,调试好代码,只需按一下回车即可完成。
💖💖💖💕💕💕欢迎来到本博客💕💕💕💖💖💖
🎁支持:如果觉得博主的文章写得还说得过去或者博客对您有帮助的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!
🎉🎉Welcome to my blog!🎉🎉
📃个人CSDN博客主页:热爱科技的刘同学🌈🌈🌈
Github开源地址
开源地址:https://github.com/ProgramApeInn/Python-Reptile-Novel
喜欢本项目的朋友可以点进来点个星,源代码我就不在CSDN公开了。
项目分析
代码我已调试过了,下面是操作步骤:
- 将代码复制到你的Python文件中,存放在本地C盘根目录下,名为:
downnovel.py
; - 安装所需要的Python模块:
pip3 install requests
pip3 install Ixml
- 在代码中最下面相应位置,修改你要下载的小说名称,不要写错字哦;
- 指定一个保存小说txt文件的目录路径;
Win+R
运行cmd
,在命令行中输入:python C:/downnovel.py
回车查看结果;- 可以看到命令行中输出的章节名称与下载进度,等待下载完成就可以打开阅读了
至此,我们就完成了Python爬取任意一本小说并保存txt到本地的程序执行,大家喜欢的记得支持一下,有遇到问题的随时在评论区里找我沟通。
可能会遇到的问题:
- 爬取太多小说,可能会导致IP被封,此时需换个网络或第二天在爬取;
- 程序如果报错,大半原因是小说名称写错了,此时检查小说名称是否正确;
- 还有一种情况就是我设定的源没有你要的小说,这个就需要修改代码的源地址和相关解析代码了。
部分代码分享
# 定义方法
def downnovel(novname, savepath, ist):
url_one = 'https://www.xbiquwx.la/s.php?seaey={}'.format(novname)
r = requests.get(url_one).content.decode()
b = etree.HTML(r)
c = b.xpath('//*[@id="wrapper]/table/tr[2]/td[1]/a/@href')[0]
url = 'https://www.xbiquwx.la'+c
r2 = requests.get(url).content
b1 = etree.HTML(r2)
xsm = os.path.join(savepath, novname)
if not os.path.isdiI(xsm):
os.makedirs(xsm)
clist = b1.xpath('//*[@id="list"/dl/dd')
for i in clist:
chapter = i.xpath('./a/text()')[0] # 文章名称
link = i.xpath('./a/@href')[0] # 文章链接
r1 = requests.get(url + link).content
b2 = etree.HTML(r1)
c1 = b2.xpath('//*[@id="content"]/text()')
if list == 2:
f = open(xsm + '/' + novname + '.txt', 'a', encoding='utf-8')
f.write(chapter + '\n')
for d in c1:
text = d
if ist == 1:
f = open(xsm + '/' + chapter + 'text', 'a+', encoding='utf-8')
f.write(text + '\n')
print("下载完成:", chapter)