用正则表达式制作单线程小说网站小说下载器

博主在学习Python基础后,通过一个多星期的学习掌握了爬虫知识,制作了一个单线程小说下载器。通过分析网页源代码,利用正则表达式提取小说URL,结合requests和os模块实现小说章节的下载。在批量下载过程中遇到了反爬问题,如服务器错误、超时、HTTP错误等,通过优化策略解决了这些问题,最终实现了高效稳定的下载速度。分享了项目的最终成果,并提供了代码和已下载的小说资源链接。
摘要由CSDN通过智能技术生成

算学了一个多月python了吧,把基础部分很慢很慢的过了。
决定做点小项目练练手,就花了一个多星期学了下爬虫的基本知识,从一开始书内的小任务-从某个小说网爬取10章小说,到最后不断扩展,做了个批量爬取某个小说网站的小说下载器,以后有无限小说看了!!!
下面我来分享下我的制作过程:
1.找到相关小说总目录,右键查看网页源代码,判断为静态网站
,网页源代码中,href右边的是小说地址, title当然是标题了,我们用正则表达式都提取出来

在这里插入图片描述
通过把那个XXXX.html 和小说总目录的网址拼接 就是具体章节的url信息了:
在这里插入图片描述

放到requests请求内,并且用os模块创建一个文件夹,就可以了
这样定义下载方法方便后面使用:

'Powered By kkinn_'
def Down_file():  #定义txt下载方法
    url = f'{html_url}{i}' #i为每一个章节的XXXX.html地址信息  html_url是总目录下的地址
    r = requests.Session() #确保单一对话
    response = r.get(url, timeout=5) #必须设置响应超时
    response.encoding = response.apparent_encoding #自动转码
    novel_content = re.findall('<div id="content"><!--go-->(.*?)</div>', response.text, re.S) #正则表达式提取文本内容
    novel_name = re.findall('<h1>(.*?)</h1>', response.text, re.S) #正则表达式提取标题
    novel = novel_content[0].replace('&nbsp;', '').replace('<br/>', '\n')  #将文本中给浏览器使用的相关符号去掉
    print('正在下载 %s' % novel_name[0].replace('?', 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值