之前试过用按照目录地址爬取正文内容的方法来爬取《鬓边不是海棠红》这本小说,结果由于它目录中的每一章又被分为了几页来展示,那种方法只能爬取到每章的第一页内容,剩下的内容都没有拿到,所以现在来换一种方法吧~
第一步:分析思路
之前的文章中已经详细地写了分析网页的方法,这里就不多写了,直接说一下实现思路吧:
①首先以小说第一章第一页作为开始爬取的页面,并爬取第一页的正文内容;
②然后获取到下一页的链接,继续爬取下一页的正文内容;
③就这样每爬取一页就更新需要爬取的页面链接,直到最后一页;
④最后把爬取到的正文保存在本地的txt文档中。
第二步:开始编程
1. 定义库
import requests
from bs4 import BeautifulSoup
requests 库是用来发网络请求的,BeautifulSoup 是用来解析和提取 HTML 数据的。
关于它俩的详细说明可以参考我之前的文章呀:爬虫学习笔记——爬取单个网页里的所有图片(入门)
2. 对各步骤分别定义函数
2.1 获取网站数据并解析网页 getHtml():
这部分代码的详细说明建议参考前一篇文章——Python爬虫练习笔记——爬取一本小说《鬓边…》
def getHtml(url):
#获取网页数据
html = requests.get(url)
htmlCode = html.text
#解析网页
soup = BeautifulSoup(htmlCode,'html.parser')
#返回解析后的页面内容
return soup
2.2 获取各章节正文 getNovelContent():
这部分代码的详细说明建议继续参考前一篇文章——Python爬虫练习笔记——爬取一本小说《鬓边…》
def getNovelContent(url):
soup = getHtml(url)
#获得需要的正文内容
content = soup.find('div', class_="contentbox").text
content = content.strip()
contentCut = content.replace("本章未完,点击[ 下一页 ]继续阅读-->>"