python爬虫下载小说_用Python编了一个爬虫,下载小说

本文介绍了一位初学者使用Python编写的爬虫脚本,用于下载笔趣阁网站上的小说。脚本能提取小说名称、作者,并按章节保存到文本文件。然而,脚本存在局限性,如仅适用于特定网站,存在章节漏下载的风险,运行速度较慢,作者期待大神指教改进。
摘要由CSDN通过智能技术生成

最近刚接触了Python爬虫,比较感兴趣,再加上本人喜欢看小说,就试写了一个下载小说的脚本。脚本说明:提供小说目录页的网址(仅限笔趣阁网站上的小说:http://www.biquge.com/),代码如下:

import requests

from bs4 import BeautifulSoup

#提取章节内容

def getNovelChapter(url):

res = requests.get(url)

res.encoding = 'utf-8'

soup = BeautifulSoup(res.text,'html.parser')

try:

title = soup.select('.bookname h1')[0].text

return title + '\n    ' + '\n    '.join(a for a in soup.select('#content')[0].text.split())

except IndexError:

return ''

url = 'http://www.biquge.tw/0_52/'    #小说目录页的网址

headers = {'Host':'www.biquge.tw',

'Connection':'keep-alive',

'Cache-Control':'max-age=0',

'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36'}

res = requests.get(url)

res.encoding = 'utf-8'

soup = BeautifulSoup(res.text,'html.parser')

title=soup.select('#info')[0].h1.text    #小说名称提取

author=soup.select('#info')[0].p.text.strip()    #小说作者提取

file = open(title + '.text','w')    #保存文件

file.write(title)

file.write('\n' + author + '\n\n')

i = 0

l = int(len(soup.select('#list dd')))

while (i

ChapterUrl = url + soup.select('#list dd').a['href'].split('/')[-1]

file.write(getNovelChapter(ChapterUrl) + '\n\n')

i=i+1

file.close()

print('下载完成')

问题:1、因只是对某个网站上的网页源码进行解析的,换另一个小说网站可能就不行了,这个暂未去验证;

2、在涵式getNovelChapter(url)中增加了try except代码,可能会导致某个章节漏下载,若不加这个代码,总是会出现超出界限的错误提示(IndexError: list index out of range),且每次运行,下载下来的章节数目不一样(有时候之下在一百多章,有时候二百来章),至今未搞清楚原因;

3、另外脚本运行速度比较慢,暂不知道如何提升。

虽然有许多问题,不过这是本人写的第一个代码,以前没有编程过,当确实下载下来小说时,自我感觉有些小小的激动{:1_912:}。

初次编写Python脚本,不足之处请大神指点,不胜感激!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值