今天我们来进行Python爬取小说网的案例,与前面学习的爬取图片和爬取电影网不同,小说网的数据量比较大,相比前两者要复杂的多。
首先分析需求,我们要对每个分类的小说进行爬取,并且进行分类,不仅是文字还有图片信息,着重考虑的是网页目录,页数跳转和下载后乱码的问题。
下面开始写代码吧!
首先导入今天的几个包
import requests
from lxml import etree
from urllib.request import urlretrieve
from urllib.parse import quote
import os
# 正则表达式:从目标字符串提取需要的字符的一种匹配规则。
import re
一部小说的全部信息需要如下代码
# 小说名称
novel_name = div.xpath('h1/text()')[0]
# 小说点击次数
novel_click_num = div.xpath('ul/li[1]/text()')[0].split(":")[-1]
# 小说文件大小
novel_size = div.xpath('ul/li[2]/text()')[0].split(":")[-1]
# 小说书籍类型
novel_file_type = div.xpath('ul/li[3]/text()')[0].split(":")[-1]
# 小说更新日期
novel_update_time = div.xpath('ul/li[4]/text()')[0].split(":")[-1]
# 小说连载状态
novel_status = div.xpath('ul/li[5]/text()')[0].split(":")[-1]
# 小说作者
novel_author = div.xpath('ul/li[6]/text()')[0].split(":")[-1]
# 小说运行环境
novel_run_envir = div.xpath('ul/li[7]/text()')[0].split(":")[-1]
# 小说最新章节
novel_last_chapter = div.xpath('ul/li[8]/a/text()')[0]
# 小说图片的地址
novel_img_url = "https://www.qisuu.la" + html_obj.xpath('//div[@class="detail_pic"]/img/@src')[0]
# 小说的下载地址
# 根据正则表达式提取
pattern_obj = re.com