环境
源码
import requests #导入HTTP的包
import re #导入正则表达式
#输入URL
url = "http://www.jingcaiyuedu.com/novel/GLSmM4.html"
#告诉浏览器,我是通过浏览器访问,防止403错误
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"}
#get发送请求
#headers设置信息头
response = requests.get(url,headers = headers)
#将网页编码转化为UTF-8
response.encoding = 'UTF-8'
#获取网站源码
html = response.text
#获取小说的题目,r代表之后的文字全部输入什么读入什么不需要在进行转义
# .代表匹配转义字符以外的任意字符,.只占一个字符位
# ?代表匹配尽可能少的匹配所搜索字符
# *代表匹配前面的子表达式多次
#.*?尽可能短的找到答案
title = re.findall(r'<meta property="og:title" content="(.*?)"/>',html)[0]
#从整个网页的html中截取出包括章节URL和章节名字的一部分
#将网页中含有这一段的每一部分保存在列表中,其中0是最新章节,1是全部章节
dl = re.findall(r'<dl class="panel-body panel-chapterlist">(.*?)</dl>',html,re.S)[1]
#将dl中章节的URL和章节名称保存在列表里
aill = re.findall(r'<a href="(.*?)">(.*?)</a>',dl)
#新建文件保存小说内容
#{title}.txt代表文件名字
#w代表写入模式
#encoding = "utf-8"代表文件的编码方式
# f 用于格式化字符串
f = open(f"{title}.txt", "w", encoding="utf-8")
#循环每一个章节,分别去下载
for i in aill:
#章节的地址和章节的名字
book_url,book_name = i
#拼接章节地址
book_url = f"http://www.jingcaiyuedu.com{book_url}"
#获取章节
book_response = requests.get(book_url,headers = headers)
book_response.encoding = "utf-8"
book_html = book_response.text
#提取章节内容
book_content = re.findall(r'<div class="panel-body" id="htmlContent">(.*?)</div>',book_html,re.S)[0]
#将空格替换为空
book_content = book_content.replace(' ','')
#将 替换为空
book_content = book_content.replace(' ','')
#将<br />替换为空
book_content = book_content.replace('<br />','')
#将<br/>替换为空
book_content = book_content.replace('<br/>','')
#<br>替换为空
book_content = book_content.replace('<br>','')
book_content = book_content.replace('<p>书友们,我是讲古书生,推荐一个小说公众号,小蚂蚁追书,支持小说下载、听书、零广告、多种阅读模式。请您关注微信公众号:xiaomayizhuishu(长按三秒复制)书友们快关注起来吧!</p>','')
#写入文件
f.write(f"{book_name}\n")
f.write(f"{book_content}\n")
print(book_name)
后续会补充上代码介绍(也可能咕咕咕?)
欢迎指出不足
Comments | 7 条评论
修真聊天群
该吃吃该喝喝,遇事别往心里搁
@Uncle_drew 哈哈哈,好的,谢谢龙佬
过来串串门
@enjoy 哈哈哈
路过……….
@小锟斤拷 啦啦啦
shazhi