1.导入库
import urllib.request import re2.编写函数
#写一个叫xxx的函数 def down():3.获取小说的源码并编码以gbk方式显示
url='http://www.quanshuwang.com/book/9/9055' html=urllib.request.urlopen(url).read().decode('gbk')如果不转成gbk显示是这样的 那又为什么一定是gbk呢 ?从它源码里面可以看见它的编码方式是什么
4.获取所有章节的链接
reg= r'<li><a href="(.*?)" title="(.*?)">(.*?)</a></li>' urls=re.findall(reg,html)5.循环所有的章节链接和标题
for url in urls: novel_url=url[0]#链接 novel_title=url[1]#标题6.获取章节源码
catal=urllib.request.urlopen(novel_url).read() catal_html=catal.decode('gbk')7.编写获取章节的内容的表达式
reg=r'</script> (.*?)<script type="text/javascript">'8.多行匹配
reg = re.compile(reg, re.S)# chapter = re.findall(reg, catal_html)9.内容中间多余的空格代码( )和换行(/br)替换成空字符串‘’
chapter=chapter[0].replace(' ','') chapter = chapter.replace('<br />', '')不然下载下来中间是这样的
10.下载的同时提示正在下载哪一章节
print('正在下载 %s'%novel_title) #上下文处理器把内容写进文本,这种方式不用自己关闭,也可以用{}.doc/{}.docx文档方式保存. with open('{}.txt'.format(novel_title),'w') as d: d.write(chapter)11.最后调用函数
down()保存在项目同目录下,可以选中右键Show in Explorer打开文件位置
