Python爬取大量免费小说

本文介绍了如何使用Python的requests库和BeautifulSoup库编写一个网页小说爬虫,通过示例代码展示如何抓取小说名称和下载链接,适用于学习网络爬虫技术。

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

大家好!今天给你们带来了用requests编写的网页小说爬取工具。可以爬取小说名和下载链接,仅供学习!

完整实例:

import requests``from bs4 import BeautifulSoup``import urllib.parse``   ``def get_novels(url, page_count):`    `#发送GET请求获取页面内容`    `response = requests.get(url)`    `content = response.content.decode('gbk')``   `    `#使用BeautifulSoup解析HTML`    `soup = BeautifulSoup(content, 'html.parser')``   `    `#查找所有符合条件的元素`    `elements = soup.select('.pldal_r1_bt a')``   `    `#使用一个集合保存已经处理过的链接和小说名`    `processed_links = set()``   `    `#遍历输出文本和链接`    `for element in elements:`        `# 获取小说名`        `novel_name = element.text.strip()``   `        `#获取li中a标签的链接`        `href = element['href']`        `if '/book/' not in href:`            `continue`        `        link_response = requests.get(urllib.parse.urljoin(url, href))`        `link_content = link_response.content.decode('gbk')`        `link_soup = BeautifulSoup(link_content, 'html.parser')`        `        #获取下载链接`        `download_element = link_soup.select_one('.dl_link_bd li a')`        `if download_element:`            `download_link = urllib.parse.urljoin(url, download_element['href'])`        `else:`            `download_element = link_soup.select_one('.dl_link_bd div a')`            `if download_element:`                `download_link = urllib.parse.urljoin(url, download_element['href'])`            `else:`                `download_link = "链接未找到"`            `        #判断链接和小说名是否已经处理过`        `if (novel_name, download_link) in processed_links:`            `continue`        `        #将链接和小说名添加到已处理集合中`        `processed_links.add((novel_name, download_link))``   `        `print(f"小说名:{novel_name}")`        `print(f"下载链接:{download_link}")`    `#获取下一页链接`    `next_page_link = None`    `next_page_element = soup.find('a', string='下一页')`    `if next_page_element:`        `next_page_link = urllib.parse.urljoin(url, next_page_element['href'])`    `    #继续爬取后续页数的小说名和链接`    `if page_count > 1 and next_page_link:`        `get_novels(next_page_link, page_count - 1)``   ``#爬取页数``page_count = 2``#链接设置``start_url = 'http://www.12z.cn/book/dushiyule/'``#开始``get_novels(start_url, page_count)
输出``小说名:《从笑星走向巨星》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=137&uhash=174cb03a1a79050f076804ab``小说名:[都市娱乐]``下载链接:链接未找到``小说名:《地府重临人间》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=126&uhash=2e3d1b01e4b29f7ccd7565e4``小说名:《神级巫医在都市》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=125&uhash=98ae6a3b72e9d485b64e5326``小说名:《终极教官》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=121&uhash=b48cdc8554488e739f5af8b5``小说名:《仙界网络直播间》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=120&uhash=09061038f69398d1b83551e5``小说名:《老婆是武林盟主》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=279&uhash=0fcf6a3d0800257139dc1fff``小说名:《夜的命名术》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6902&uhash=593f27fca4d78e4040e5b6b3``小说名:《重生2011》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6900&uhash=fdf80b6d9412f6d720280622``小说名:《我已不做大佬好多年》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6896&uhash=3bf78814f52f8f39b723cd9e``小说名:[都市娱乐]``下载链接:链接未找到``小说名:《重生之似水流年》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6880&uhash=48162b5465d2f63976c51a5d``小说名:《重生之金融巨头》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6877&uhash=9aac2f935cb1b980656add7f``小说名:《平常人类的平凡生活》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6876&uhash=7eff5a03a6cc70ffac282042``小说名:《从冒牌大学开始》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6862&uhash=5fd229aa605fad0dfddd4f39``小说名:《寻宝从英伦开始》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6851&uhash=52e3a3c78a2f87ec225a1af9``小说名:《无敌从仙尊奶爸开始》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6840&uhash=1deaeef764535f9403b8f8e7``小说名:《超级农业强国》(校对版全本)``下载链接:http://www.12z.cn/plus/download.php?open=2&id=6837&uhash=04df41735193ff7dff5ecf45

以上就是“Python爬取大量免费小说”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

### 使用Python编写网页爬虫抓取小说文本的方法 为了实现使用Python编写的网页爬虫来抓取小说内容,可以从以下几个方面入手: #### 工具的选择 常用的工具包括Requests、BeautifulSoup、Selenium等。这些工具分别负责不同的功能: - **Requests** 是用来发送HTTP请求并获取网页内容的核心库[^2]。 - **BeautifulSoup** 负责解析HTML或XML文档,从而提取所需的结构化数据[^3]。 如果目标网站的内容是由JavaScript动态加载的,则可能需要借助 **Selenium** 来模拟浏览器行为,以便正确渲染页面后再进行数据提取[^1]。 #### 抓取流程设计 以下是构建一个基本的小说爬虫的主要环节: 1. 发送HTTP请求至目标URL以获取原始HTML内容。 2. 解析HTML文档,定位到包含小说章节标题和正文的具体标签位置。 3. 将提取的数据按照一定格式保存下来(如TXT文件或其他数据库形式)。例如,在完成数据采集之后,可以通过简单的写入操作将结果存入本地文件中[^4]。 ```python import requests from bs4 import BeautifulSoup def fetch_novel_content(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'} response = requests.get(url, headers=headers) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') title_tag = soup.find('h1') # 假设小说标题位于<h1>标签内 content_tags = soup.find_all('p', class_='novel-content') # 假设正文字体在<p>标签里 novel_title = title_tag.string.strip() if title_tag else "未知" full_text = "\n".join([tag.get_text(strip=True) for tag in content_tags]) return {"title": novel_title, "content": full_text} raise Exception(f"Failed to load page {url}, status code: {response.status_code}") # 测试函数调用 if __name__ == "__main__": url_to_scrape = input("请输入要抓取的小说网址:") result = fetch_novel_content(url_to_scrape) with open('./output/novel_output.txt', mode='w+', encoding="utf8") as f: f.write(result['title'] + '\n\n' + result['content']) ``` 此脚本展示了如何定义一个简单的小说爬虫逻辑,并提供了初步的功能展示。实际应用时还需要考虑更多细节问题,比如翻页机制处理、错误重试策略等等。 #### 数据存储方式 对于大量连续更新的小说来说,除了普通的文本文件外还可以采用关系型数据库(SQLite/Mysql)或者非关系型数据库(MongoDB)来进行长期管理与查询优化。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值