python网页抓取实例_网页看小说好多广告,今天用Python抓取小说目录和全文

本文介绍如何使用Python的requests库抓取斗破苍穹小说的目录及内容。通过正则表达式解析HTML,提取目录标题和对应URL,再获取各章节文本内容并保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文要实现的案例是通过 requests 库抓取 斗破小说网 上指定的小说的目录和每一节的完整内容(只保留纯文本内容)。当抓取包含目录和小说内容的页面后,会通过正则表达式分析 HTML 代码,并提取出目录标题,对应的 url 以及文本形式的小说内容。现在进入斗破小说网,选择一篇小说,本文选择了 斗破苍穹 目录页面如下图所示:

261078b6f2b79d22b056addb1ed13913.png


真是岁月催人老呀,怀念当年偷偷捂着被子,逃课看这本小说的年纪。这部小说的目录很多,我只截图了一部分,第一个任务要完成下载这个目录页面的代码,并从中提取出小说的目录以及对应的 URL 。在网页中按 F12 或者是 检查 调出控制台调试界面,如下图所示:

80fc8dcbbe66d6e9910fd03f6690cb7f.png


这步完成之后,我们就可以将标题作为文件名,然后抓取 URL 对应的页面内容,并提取出文本形式的小说正文,然后将小说正文保存在以标题作为文件名的文件夹中。随便单击一个章节,进入小说正文,使用上面的方式调出调试窗口,查看正文对应的 HTML 代码,如下图所示:

9daad2015707ca621c211d1e869e4bc1.png


使用 requests 模块的时候,需要进行安装,如下图所示:

f9b5430900ababbb486c68504a0ab483.png


根据前面的分析,示例代码如下:

# -*- coding: utf-8 -*-# @Time    : 2020/5/9 19:03# @Author  : 我就是任性-Amo# @FileName: 76.抓取小说目录和全文.py# @Software: PyCharm# @Blog    :https://blog.youkuaiyun.com/xw1680import requests  # 第三方模块 需要使用pip安装import re  # 导入正则模块import os# 构造请求头headers = {    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, "                  "like Gecko) Chrome/81.0.4044.138 Safari/537.36"}# TODO 1.根据小说链接得到小说目录和对应的urldef get_catalogue(url):    # 发送请求    response = requests.get(url=url, headers=headers)    response.encoding = "utf-8"  # 指定编码    chapter_info_list = []  # 用来存储获取到的所有url和章节标题数据    if response.status_code == 200:  # 判断请求是否成功        li_list = re.findall(r".*", response.text)  # 过滤 获取所有的li标签        for li in li_list:            # print(li)            result = re.search(r'href="(.*)" ', li)  # 过滤出url和标题            if result:                # 组成完整的url                chapter_url = "http://www.doupoxs.com" + result.group(1)                # 得到章节的标题                title = result.group(2)                # 使用字典存储url和title                chapter = {"title": title, "url": chapter_url}                # 将字典添加到列表中                chapter_info_list.append(chapter)    print(chapter_info_list)    return chapter_info_list# TODO 2.根据章节目录,抓取目录对应的url指定的小说正文页面def get_content(chapter_info_list):    for chapter_info in chapter_info_list:        # 发送请求        response = requests.get(url=chapter_info["url"], headers=headers)        if response.status_code == 200:  # 判断请求是否成功            # 判断小说文件夹是否存在            if os.path.exists("novel_斗破苍穹"):                pass            else:                os.makedirs("novel_斗破苍穹")            content_list = re.findall(r"

(.*?)

", response.content.decode("utf8"))[1:-1] # 建立文件 并将小说正文写入文件中 with open("./novel_斗破苍穹/" + chapter_info["title"] + ".txt", "w", encoding="utf8") as file: # 将内容一行一行的写入文件中 for content in content_list: file.write(content + "")if __name__ == '__main__': get_content(get_catalogue("http://www.doupoxs.com/doupocangqiong/"))

程序执行结果如下图所示:

7b7087aa28c1d51ffcf074bf9ef40620.png

很简单,有木有!

此文转载于:Amo Xiang

著作权归作者所有,如有侵权联系小编删除!

原文地址:https://blog.youkuaiyun.com/xw1680/article/details/106025946


源码获取私信小编01

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值