网络小说爬取

本文介绍了如何使用Python爬虫技术爬取番茄小说网的《我不是戏神》,规避广告问题。首先确定目标小说网站和章节,接着导入相关模块,获取小说名称与章节ID,最后将内容保存到TXT文件。

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


前言

通过对python的学习进一步的提升,针对小说广告太多的问题,对番茄小说的某部小说进行了爬虫爬取。


提示:以下是本篇文章正文内容,下面案例可供参考

一、思路

找到想看的小说的网站地址→爬取小说所有章节的网站地址→爬取每章小说的标题和内容→把内容保存到TXT文件

二、具体步骤

1.找到需要爬取的网站和小说

我爬取的是番茄小说网的《我不是戏神》这部小说
杀杀杀是是是是在这里插入图片描述

2.导入需要使用到的模块

代码如下(示例):

#导入数据模块
import requests
#导入正则模块
import re
#导入数据解析模块
import parsel

3.获取小说名字及章节ID

# 请求链接
url = 'https://fanqienovel.com/page/7276384138653862966'
#模拟浏览器
headers = {
   
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0'
}
#发送请求
response =requests.get(url
### 编写Python爬虫程序抓取番茄小说网内容 为了实现从番茄小说网站抓取小说内容并将其保存到本地文件的功能,可以按照以下方法构建爬虫程序。以下是详细的说明: #### 安装所需依赖库 在开始之前,需要安装几个重要的Python库以支持数据抓取和处理功能: ```bash pip install requests beautifulsoup4 lxml pandas openpyxl ``` - `requests`:用于发起HTTP请求[^1]。 - `beautifulsoup4` 和 `lxml`:用于解析HTML页面结构。 - `pandas`:用于将数据整理成表格形式以便后续操作。 #### 抓取流程概述 通过分析目标网站(如番茄小说),通常会涉及以下几个主要步骤: 1. **访问主页**:利用`requests.get()`函数加载指定URL下的网页源码。 2. **提取链接列表**:使用`BeautifulSoup`定位所有指向具体章节或者书籍详情页的超链接地址。 3. **逐章读取正文内容**:进入每一个单独章节页面后,继续采用相同方式抽取纯文字部分作为最终成果之一。 4. **保存至文件系统**:最后把收集来的全部段落按顺序组合起来存入TXT文档或者其他格式当中去。 下面给出一段示范性的代码片段展示上述逻辑的具体实施办法: ```python import os import time from bs4 import BeautifulSoup as soup import requests def fetch_chapter(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0 Safari/537.36'} response = requests.get(url=url,headers=headers) html_content=response.text parsed_html=soup(html_content,"lxml") title=parsed_html.find('h1').get_text() content_div=parsed_html.select_one("#content").stripped_strings full_txt="" for line in content_div: full_txt+=line+"\n" return {"title":title , "text":full_txt} if __name__=='__main__': base_url="https://www.tomatobooks.com/book/chapters/" output_folder="./novels/" if not os.path.exists(output_folder): os.mkdir(output_folder) chapter_links=["chapter_{}.html".format(i+1)for i in range(10)] for link in chapter_links[:]: abs_link=base_url+link try: result=fetch_chapter(abs_link) filename=os.path.join(output_folder,result["title"]+".txt") with open(filename,'w',encoding='utf8')as fobj: fobj.write(result['text']) print(f"{result['title']} 已成功下载.") time.sleep(2)# 防止频繁请求被封禁 except Exception as e: print(e) continue ``` 此脚本实现了基本的小说章节抓取与存储功能,并考虑到了一定的异常处理机制以及合理的等待间隔设置以防IP封锁等问题发生[^2]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值