正则爬取小说
首先找到要爬取的网站https://www.kanunu8.com/book/4514/
大名鼎鼎的十宗罪嘿嘿
首先f12看他的源码。惊奇的发现在这个页面里面保存了许多的后缀网页。将这些后缀拼到一起。就能访问正文的页面了。废话不多说,上代码:
from urllib import request
import re,os
url = 'https://www.kanunu8.com/book/4514/'
x = request.urlopen(url)
req = x.read()
html = req.decode('gbk')
newurl=[]
html=re.findall('href=\"\d*\.html\"',html)
for i in html:
s=i.split('=')[1].replace('\"','')
newurl.append(url+s)
s = 0
for i in range(len(newurl)+1):
temp = request.urlopen(newurl[s])
req = temp.read()
html =req.decode('gbk')
k=re.findall(r'<p>(.+)</p>',html,re.S)
with open('十宗罪.txt','w+',encoding='gbk') as f_w:
for i in k:
f_w.write(i)
s+=1
在爬取结束的时候会报错一下。
分析:本次的爬虫是使用了两个for循环。第一个循环用来拼接正文路径。第二个循环用来遍历正文的文本。先使用正则匹配文本然后遍历最后序列化存储到txt文本。这样就爬取成功了。
由于这是笔者的第一次爬虫成功的小说。所以有许多不足。例如爬取的是网页端的格式没有修改 导致留下了许多的
符号。笔者以后会继续努力的!一起加油吧