利用python正则表达式爬取笔趣阁小说文本的小程序

利用python获取小说文本,在这里我只运用了正则表达式来匹配文本,至于其他方法大家可自行百度搜索。废话不多说,开始我们的正文。
首先是目标网址笔趣阁(http://www.xbiquge.la)利用python正则表达式爬取笔趣阁小说文本的小程序_第1张图片
这就是目标网址!
然后随便点击一本小说进入小说主页面。
利用python正则表达式爬取笔趣阁小说文本的小程序_第2张图片
现在就开始对这个网页进行分析,我们会发现在这个页面包含了每章的标题以及每章内容的网址(从源代码中可以看出)
利用python正则表达式爬取笔趣阁小说文本的小程序_第3张图片
蓝色就是每章内容的网址,黑色就是每章的标题。
我们现在要做的就是利用正则把我们所需要的东西匹配出来,但首先的是我们要获取整个页面的源代码,以下代码会帮我们实现这个目标。

import requests
html = requests.get(#输入小说主页面网址)
html.encoding = "utf-8"

例子如下:

import requests
html = requests.get(“http://www.xbiquge.la/10/10489/”)
html.encoding = "utf-8"

获取了整个页面源代码之后,我们就开始利用正则表达式来匹配,代码如下

import re
url = re.findall(#正则表达式,#整个页面的源代码文件)

例子如下:

import re
url = re.findall(“
”,html。text)

这样我门就获取了这本小说的每章网址,但由于是不完整的网址,所以需要我们来对网址进行处理,把每一个网址通过拼接来得到一个个完整的网址,代码如下。

for urls in url:
     wz = "http://www.xbiquge.la" + urls

这里之所以会用到for循环是因为re.findall()返回来的是一个列表,现在我们已经获取了每个章节的完整的网址,接下来就是获取每个章节的内容。
思路和上面的一样,首先获取每一章的源代码,利用正则表达式把小说的内容匹配出来代码如下:

wengbeng = requests.get(wz)
wengbeng.encoding = "utf-8“
neirong = re.findall(">    (.*?)
",wengbeng.text)

这样我们就可以把每章的内容匹配出来,接下来就是保存内容,并利用文章标题作为txt文本的标题(#标题可以利用正则表达式来匹配出来)相关代码如下:

mz = re.findall("

(.*?)

",zw.text) mzms= mz[0] + ".text" with open(mzs,"w") as object: nrs = "".join(nr) object.write(nrs)

现在基本上的代码已经完成了,这个小程序主要有三大点:
1. 获取页面源代码。
2. 利用正则表达式来匹配出我们需要的东西。
3. 保存

总的代码如下:

import requests
import re
#获取小说的网址!
cc = input("请输入小说的网址:")
#访问小说的网址并且获得源代码!
html = requests.get(cc)
html.encoding = "utf-8"
#通过正则表达式获取每章小说的网址!
url = re.findall("
",html.text) cx = len(url) #获取列表长度 print("总共有:%d" %cx) i = 0 for urls in url: i = i + 1 wz = "http://www.xbiquge.la" + urls #获取完整的每章网址 zw = requests.get(wz) #获取每章网址的源代码 zw.encoding = "utf-8" nr = re.findall(">    (.*?)
",zw.text) #获取每章的内容 mz = re.findall("

(.*?)

",zw.text) #获取每章的标题 mzm = mz[0] + ".text" with open(mzm,"w") as object: nrn = "".join(nr) object.write(nrn) #保存 print("已完成%d" %i) if i == cx: print("下载完成!")

运行代码结果如下:
利用python正则表达式爬取笔趣阁小说文本的小程序_第4张图片
利用python正则表达式爬取笔趣阁小说文本的小程序_第5张图片
需要注意的是,由于没有写保存路径,所以会自动保存在程序所在的路径中
由于本人第一次写这种,不知道对大家是否有用,如果有用,我深表欣慰,谢谢大家的观看!

你可能感兴趣的:(python)