实战爬取某小说网站内容 -自带源码

简介: 爬去某小说网站,生成并下载下来

image.png

爬取该网站所有小说章节

image.png
试验成功!!
image.png

image.png
附带源码:

-- coding: utf-8 --

from urllib.parse import urljoin, urlparse
from lxml import etree
from bs4 import BeautifulSoup
import requests
import sys
import io
import os

解决编码乱码问题

修复 print() 的编码问题

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gbk', errors='replace')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='gbk', errors='replace')

def extract_html_links_bs(url):
headers = {
"user-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Mobile Safari/537.36"
}

try:
    response = requests.get(url, headers=headers, timeout=10)
    response.raise_for_status()
    response.encoding = response.apparent_encoding
except Exception as e:
    print(f"请求失败: {e}")
    return []

soup = BeautifulSoup(response.text, 'lxml')
links = []

for a_tag in soup.find_all('a', href=True):
    href = a_tag['href']
    clean_href = href.split('#')[0]  # 去锚点
    absolute_url = urljoin(url, clean_href)
    parsed = urlparse(absolute_url)
    path = parsed.path

    # 判断是否为 HTML 页面
    if (path.lower().endswith(('.html', '.htm')) or
            path.endswith('/') or
            '.' not in path.split('/')[-1]
    ):
        # 排除常见静态资源(可选)
        if any(absolute_url.lower().endswith(ext) for ext in ['.jpg', '.png', '.pdf', '.zip']):
            continue
        links.append(absolute_url)

return list(set(links))

def webneirong(link):
headers = {
"user-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Mobile Safari/537.36"
}
resp = requests.get(link, headers=headers)
p = resp.text.replace('\ufeff', '')

# print(p)
e = etree.HTML(p)
# 获取内容
info = e.xpath('//div[@class="discription"]/text()')
title = e.xpath('//div[@id="bookname"]/text()')
# print(info,len(info))
# 定义书名
file_name = str(title)
# print(file_name, type(file_name))
# 获取固定标签内容
response = requests.get(link)
response.encoding = response.apparent_encoding
soup = BeautifulSoup(p, 'lxml')
# 找出所有 <p> 标签

p_tags = soup.find_all('p')
# print(type(p_tags))
# 使用循环遍历并提取每个 <p> 标签的文本
l = []
# 取出有用的数据
for index, p in enumerate(p_tags):
    text = p.get_text(strip=True)  # strip=True 去除首尾空白
    # print(text)
    l.append(str(text))
# print(l)
return file_name, l

def baocunwenjian(file_name, my_list):
desktop = os.path.join(os.path.expanduser("~"), "Desktop")
filename = file_name + ".txt"
filepath = os.path.join(desktop, filename)

# 确保目录存在(桌面肯定存在,但为了通用性)
os.makedirs(desktop, exist_ok=True)
with open(filepath, 'a', encoding='utf-8') as file:
    for item in my_list:
        file.write(item + '\n')
print(f"✅ 文件已保存到:{filepath}")

if name == "main":
links = extract_html_links_bs()
for link in links:
if '/book/' in link and len(link) == 50:

        # print(link)
        ceshi = webneirong(link)
        # print(len(ceshi))
        baocunwenjian(ceshi[0], ceshi[1])
目录
相关文章
|
2月前
|
算法 Java
50道java基础面试题
50道java基础面试题
|
JavaScript
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格化合成,让推理音色更具情感特色,并且推出了新的预处理webuI,操作上更加亲民和接地气。
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
|
并行计算 开发工具 C++
无所不谈,百无禁忌,Win11本地部署无内容审查中文大语言模型CausalLM-14B
目前流行的开源大语言模型大抵都会有内容审查机制,这并非是新鲜事,因为之前chat-gpt就曾经被“玩”坏过,如果没有内容审查,恶意用户可能通过精心设计的输入(prompt)来操纵LLM执行不当行为。内容审查可以帮助识别和过滤这些潜在的攻击,确保LLM按照既定的安全策略和道德标准运行。 但我们今天讨论的是无内容审查机制的大模型,在中文领域公开的模型中,能力相对比较强的有阿里的 Qwen-14B 和清华的 ChatGLM3-6B。 而今天的主角,CausalLM-14B则是在Qwen-14B基础上使用了 Qwen-14B 的部分权重,并且加入一些其他的中文数据集,最终炼制了一个无内容审核的
无所不谈,百无禁忌,Win11本地部署无内容审查中文大语言模型CausalLM-14B
|
1月前
|
数据采集 存储 监控
构建定时监控系统,轻松爬取番茄小说最新章节
构建定时监控系统,轻松爬取番茄小说最新章节
|
机器学习/深度学习 人工智能 算法
【视觉智能产品速递——人物动漫化能力上新】
VIAPI—人物动漫化!新增风格版本发布。 产品功能:人物动漫化——输入一张人物图像,生成其二次元卡通形象,返回卡通化后的结果图像。 🔥🔥🔥 本次更新风格:国风工笔画、港漫风
1163 3
【视觉智能产品速递——人物动漫化能力上新】
|
机器学习/深度学习 异构计算 Python
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
对于深度学习初学者来说,JupyterNoteBook的脚本运行形式显然更加友好,依托Python语言的跨平台特性,JupyterNoteBook既可以在本地线下环境运行,也可以在线上服务器上运行。GoogleColab作为免费GPU算力平台的执牛耳者,更是让JupyterNoteBook的脚本运行形式如虎添翼。 本次我们利用Bert-vits2的最终版Bert-vits2-v2.3和JupyterNoteBook的脚本来复刻生化危机6的人气角色艾达王(ada wong)。
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
|
算法 程序员
从《阴阳师》到《原神》,抽卡中的程序算法
收集类的抽卡手游,是玩家们喜闻乐见的一类游戏,他们背后又有哪些程序算法?我们一起来探讨
4182 0
从《阴阳师》到《原神》,抽卡中的程序算法
|
1月前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
302 1
|
1月前
|
人工智能 监控 算法
《动漫游戏角色动作优化:手绘帧与物理模拟的协同突破实践》
本文围绕2D横版动漫格斗游戏开发,聚焦角色动作“手绘帧与物理模拟融合”的核心技术实践。针对动作僵硬、同步精度低、形变夸张难落地、性能瓶颈、风格与物理冲突、场景交互脱节六大问题,分别提出骨骼控制器联动、关键帧锚定、手绘形变模板适配、分层物理计算、动漫风格物理参数库、动作与场景物体绑定六大解决方案。通过差异化参数设置、动态层级切换等细节优化,既保留动漫审美张力,又解决技术痛点,还延伸应用至攀爬、游泳场景,为动漫游戏动作开发提供实用技术参考,兼顾效果、性能与用户体验。
767 3
|
并行计算 API C++
又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享
Bert-vits2项目近期炸裂更新,放出了v2.0.2版本的代码,修正了存在于2.0先前版本的重大bug,并且重炼了底模,本次更新是即1.1.1版本后最重大的更新,支持了三语言训练及混合合成,并且做到向下兼容,可以推理老版本的模型,本次我们基于新版V2.0.2来本地推理原神小姐姐们的音色模型。
又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享
下一篇
oss云网关配置