利用三十行Python爬取网络小说

本文讲述了作者如何使用Python爬虫为同事爬取网络小说《医圣之最强狂兵》的全文,避免了被个人账号索要红包的情况。通过简单的代码,成功下载了3.24MB的txt文件。

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

今天同事问我有没有网站可以下载小说,我说没有啊 你要找哪个小说(心里有点鄙视他 ,心想现在什么小说在网上不是都能找到吗,自信搜索能力的我准备帮人帮到底)他说,《医圣之最强狂兵》,我当然没看过了,搜索了半天只找到了一些人分享的网盘地址,点进去发现里面只有前几章的txt,——预知后事如何请加下面VX….$%#^%&^&&a

我一脸天真的加了一下,还以为是只想凑点击率和关注量的分享小说的公众号,结果是个人账号,=。=,对,就如你所想,六块钱红包她就会发给我小说。

算了吧,有那钱干点啥不好,自己又不是不会爬虫。

于是随手写了下面的程序。

网站如下

http://www.biqugecom.com/34/34055/

这里写图片描述

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import requests
### 使用Python实现网络小说爬虫 要使用Python实现一个网络小说爬虫,可以按照以下方式构建程序逻辑。以下是详细的说明: #### 1. 准备工作 在开始之前,需要安装必要的库工具,例如`requests`和`BeautifulSoup`。这些库可以帮助我们发送HTTP请求并解析HTML文档。 ```bash pip install requests beautifulsoup4 ``` #### 2. 发送HTTP请求 通过`requests`库向目标网站发送GET请求以获取网页内容。需要注意的是,某些网站可能有反机制,因此可以通过设置User-Agent头来伪装成浏览器访问[^1]。 ```python import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } url = "https://example.com/novel/chapter" response = requests.get(url, headers=headers) if response.status_code == 200: html_content = response.text else: print(f"Failed to retrieve the page. Status code: {response.status_code}") ``` #### 3. 解析HTML页面 利用`BeautifulSoup`库解析返回的HTML内容,并从中提取所需的小说章节标题和正文内容[^3]。 ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'html.parser') title_tag = soup.find('h1') # 假设标题位于<h1>标签中 content_tags = soup.find_all('p') # 假设正文字体位于<p>标签中 novel_title = title_tag.text.strip() if title_tag else "Unknown Title" chapter_text = "\n".join([tag.text.strip() for tag in content_tags]) print(novel_title) print(chapter_text[:200]) # 打印前200字符作为示例 ``` #### 4. 数据存储 将抓取的内容保存至本地文件以便后续离线阅读。 ```python output_file = f"{novel_title}.txt" with open(output_file, 'w', encoding='utf-8') as file: file.write(novel_title + '\n\n') file.write(chapter_text) print(f"The novel has been saved to '{output_file}'.") ``` #### 5. 处理多页或多章情况 如果小说分布在多个页面或者章节链接列表中,则需要遍历所有链接逐一抓取每一页的内容[^4]。 ```python base_url = "https://example.com/novel/" chapters = ["chapter1", "chapter2", "chapter3"] # 替换为实际章节URL部分 for chapter in chapters: full_url = base_url + chapter response = requests.get(full_url, headers=headers) if response.status_code != 200: continue soup = BeautifulSoup(response.text, 'html.parser') title = soup.find('h1').text.strip() text = "\n".join([p.text.strip() for p in soup.find_all('p')]) with open(f"{title}.txt", 'w', encoding='utf-8') as file: file.write(title + '\n\n' + text) ``` 以上代码片段展示了如何逐步完成从单个页面到整个系列小说的数据采集过程。 ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值