百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python爬取小说技术指南(python爬取文章)

off999 2025-05-11 00:13 22 浏览 0 评论

在 Python 中爬取小说需要遵循法律法规和网站的服务条款,请确保你有权获取目标内容。以下是使用 Python 爬取小说的通用技术流程

安装依赖库

pip install requests beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple

示例代码

import requests
from bs4 import BeautifulSoup
import time

# 目标目录页URL
url = "http://www.bequ6.org/144_144551/"

# 模拟浏览器请求头
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"
}

# 获取目录页内容
def get_chapter_links(url):
    try:
        response = requests.get(url, headers=headers)
        response.encoding = "utf-8"  # 根据实际网页编码调整
        soup = BeautifulSoup(response.text, "html.parser")
        
        # 假设章节链接在<div id="list">下的<dd><a>标签中(需根据实际HTML结构调整)
        chapter_list = soup.find("div", id="list")
        links = chapter_list.find_all("a")
        
        # 拼接完整URL并返回
        base_url = url.rsplit("/", 2)[0]  # 获取基础URL
        return [f"{base_url}/{link.get('href')}" for link in links]
    except Exception as e:
        print(f"获取章节链接失败: {e}")
        return []

# 获取单章内容
def get_chapter_content(chapter_url):
    try:
        response = requests.get(chapter_url, headers=headers)
        response.encoding = "utf-8"
        soup = BeautifulSoup(response.text, "html.parser")
        
        # 假设标题在<h1>标签中
        title = soup.find("h1").text.strip()
        
        # 假设正文在<div id="content">中
        content = soup.find("div", id="content").text.strip()
        
        return title, content
    except Exception as e:
        print(f"获取章节内容失败: {chapter_url} - {e}")
        return None, None

# 主程序
if __name__ == "__main__":
    # 获取所有章节链接
    chapter_links = get_chapter_links(url)
    print(f"共找到 {len(chapter_links)} 个章节")
    
    # 遍历章节并保存内容
    with open("novel_content.txt", "w", encoding="utf-8") as f:
        for link in chapter_links:
            title, content = get_chapter_content(link)
            if title and content:
                f.write(f"\n\n{title}\n\n")
                f.write(content)
                print(f"已保存章节: {title}")
            time.sleep(1)  # 防止请求过快被封
    
    print("小说内容已保存到 novel_content.txt")

关键注意事项

  1. 反爬机制
  2. 添加 headers 模拟浏览器请求。
  3. 使用 time.sleep() 控制请求频率。
  4. 部分网站需要处理 Cookies 或验证码(需更复杂方法)。
  5. 动态加载内容
    如果章节内容通过 JavaScript 动态加载,需使用 Selenium 或 requests-html 库。
  6. 内容清洗
    使用正则表达式或字符串处理去除广告等无关内容。
  7. 异常处理
    添加 try-except 处理网络错误或解析失败。

法律提醒

务必遵守以下原则

  1. 仅爬取允许公开访问且无版权保护的内容。
  2. 不得将爬取内容用于商业用途。
  3. 尊重网站的 robots.txt 协议。

援共小说收藏

最后分享一些稀有小说,收集整理不易,多谢打赏!!
不定期更新收集到的小说,建议收藏!!
可txt免费文本下载,无网络也可阅读!!

相关推荐

Kubernetes 核心概念全景图:Pod、Node、Cluster、Control Plane 等

想真正读懂Kubernetes的底层运作,你必须理解它的“权力架构”。Pod是什么?Node是什么?ControlPlane又是做什么的?它们之间有什么关系?怎么协同工作?本篇带你构建一个...

Helm 实战:用 Helm 部署一个 Nginx 应用

这一篇,我们将动手实战:用Helm从零部署一个Nginx应用,并掌握HelmChart的结构和参数化技巧。一、准备环境在开始之前,你需要确保环境中具备以下工具:已部署的Kubernet...

从零开始:如何在 Linux 上搭建 Nginx + Node.js 高性能 Web 服务

在现代互联网服务架构中,Nginx+Node.js已成为轻量级、高性能网站的首选组合。本文将带你从零开始,一步步搭建一个高并发、高可用的Web服务平台,让新手也能轻松掌握生产级部署思路。一、...

NetBox 最新版 4.4.1 完整安装指南

NetBox最新版4.4.1完整安装指南(修正版)by大牛蛙1.系统准备#关闭SELinux和防火墙(仅测试环境)systemctldisable--nowfirewalldse...

Termux 安装 linux 宝塔面板,搭建 Nginx+PHP+Mysql web 网站环境

Termux安装linux宝塔面板,搭建Nginx+PHP+Mysqlweb服务环境,解决启动故障奶妈级教程1.到宝塔面板官网:https://www.bt.cn/new/download...

OpenEuler系统安装Nginx安装配置_openwrt安装nginx

NginxWEB安装时可以指定很多的模块,默认需要安装Rewrite模块,也即是需要系统有PCRE库,安装Pcre支持Rewrite功能。如下为安装NginxWEB服务器方法:源码的路径,而不是编...

多级缓存架构实战:从OpenResty到Redis,打造毫秒级响应系统

在传统的Web架构中,当用户发起请求时,应用通常会直接查询数据库。这种模式在低并发场景下尚可工作,但当流量激增时,数据库很容易成为性能瓶颈。多级缓存通过在数据路径的不同层级设置缓存,可以显著降低数据库...

如何使用 Nginx 缓存提高网站性能 ?

快速加载的站点提供了更好的用户体验并且可以拥有更高的搜索引擎排名。通过Nginx缓存提高你的网站性能是一个有效的方法。Nginx是一个流行的开源web服务器,也可以作为web服务器反向代...

如何构建企业级Docker Registry Server

很多人问我,虚拟机镜像和docker镜像的区别是什么?其实区别非常明显,我们可以通过阅读Dockerfile文件就可以知道这个镜像都做了哪些操作,能提供什么服务;但通过虚拟机镜像,你能一眼看出来虚拟机...

如何解决局域网SSL证书问题?使用mkcert证书生成工具轻松搞定

“局域网里弹出‘不安全’红锁,老板就在身后盯着演示,那一刻只想原地消失。”别笑,九成前端都经历过。自签证书被Chrome标红,客户以为网站被黑,其实只是缺一张被信任的证。mkcert把这事从半小时缩到...

Docker 安全与权限控制:别让你的容器变成“漏洞盒子”

在享受容器带来的轻量与灵活的同时,我们也必须面对一个现实问题:安全隐患。容器并不是天然安全,错误配置甚至可能让攻击者“越狱”入侵主机!本篇将带你从多个层面强化Docker的安全防护,构建真正可放心...

Kubernetes生产级管理指南(2025版)

在云原生技术持续演进的2025年,Kubernetes已成为企业数字化转型的核心引擎。然而,生产环境中的集群管理仍面临基础设施配置、安全漏洞、运维复杂度攀升等挑战。本文将结合最新行业实践,从基础设施即...

云原生工程师日常使用最多的工具和100条高频命令

在云原生时代,工程师不仅要熟悉容器化、编排和服务网格,还要掌握大量工具和命令来进行日常运维与开发。本文将从工具篇和命令篇两个角度,详细介绍云原生工程师每天都会用到的核心技能。一、云原生工程师常...

用 Jenkins 实现自动化 CI/CD_jenkins api自动执行

场景设定(可替换为你的技术栈)语言:Node.js(示例简单,任何语言思路一致)制品:Docker镜像(推送到DockerHub/Harbor)运行环境:Kubernetes(staging...

5款好用开源云笔记虚拟主机部署项目推荐

在个人数据管理与协同办公场景中,开源云笔记项目凭借可自主部署、数据可控的优势,成为众多用户的首选。以下推荐5款适配虚拟主机部署、功能完善的开源项目,附核心特性与部署要点,助力快速搭建专属云笔记系统。...

取消回复欢迎 发表评论: