利用爬虫爬取网页小说

news/2024/11/24 10:41:05/

需求分析

安装requests包

pip	install	requests

在这里插入图片描述

在这里插入图片描述

目录采集地址:
h t t p s : / / w w w . 3 b q g . c c / b o o k / 60417 / https://www.3bqg.cc/book/60417/ https://www.3bqg.cc/book/60417/
章节采集地址:
h t t p s : / / w w w . 3 b q g . c c / b o o k / 60417 / 1. h t m l https://www.3bqg.cc/book/60417/1.html https://www.3bqg.cc/book/60417/1.html

pycharm代码实现

python">#导入requests模块和re模块
import  requests,re#要爬取的网址
url="https://www.3bqg.cc/book/60417"#伪造请求#声明一个身份代理信息,随便进入一个网页检查——网络——标头即可找到User-Agent
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
}
#发起一个伪造请求
# requests.get(url1,headers=headers)
#接收服务器返回的数据
response=requests.get(url,headers=headers)#设置响应编码
response.encoding="UTF-8"#查看响应数据
content=response.text
#print(content)
python">#正则提取章节名称和链接
p=r'<a href ="(.*?)"\>(第.*?)>'
chs=re.findall(p,content,re.DOTALL)
#print(chs)
#提取出来后章节链接与章节名在一个列表中

注意

re.DOTALL:这是一个标志,告诉正则表达式模块 .(点)元字符应该匹配包括换行符在内的任意字符。通常情况下,. 不匹配换行符,但当你使用 re.DOTALL 标志时,它将匹配任何字符,包括换行符。如果不使用 re.DOTALL 标志, . 不匹配换行符,所以无法匹配整个多行字符串。

re.findall 是 Python 的 re(正则表达式)模块中的一个函数,它的作用是在一个字符串中查找所有与正则表达式匹配的部分,并将它们作为一个列表返回。

python">#声明一个字典
chapter=dict()
for ch in chs:#以章节名做key,地址做valuechapter[ch[1]]="https://www.3bqg.cc"+ch[0]
#print(chapter)
#导入jasn模块
import json
with open('chapters.txt','wt',encoding='utf-8') as file:#将 chapter 字典转换为 JSON 格式的字符串,并将其写入到 file 变量所引用的文件中json.dump(chapter, file)#加载需要的目录
with open('chapters.txt',encoding='utf-8') as file:ac=json.load(file)#print(ac)#伪造请求
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
}
import random,timefor title , url in ac.items():with open("道诡异仙.txt",mode="at",encoding='utf-8') as file:print(f"准备采集:{title}")#发起伪造请求res=requests.get(url,headers=headers)#设置数据编码res.encoding=("UTF-8")#分析数据格式consequence=res.text# print(consequence)#定义正则表达式,匹配数据a=r'<div id="chaptercontent"+\s+class="Readarea+\s+ReadAjax_content">(.*?)</div>'#打印获取的某一章的内容#第一种fangfa#content=re.findall(a,consequence,re.DOTALL)#print(content)#第二种方法# 只有一条数据,可以用re.searchcontent=re.search(a,consequence,re.DOTALL)#使用content.group()获取第一个捕获组的内容content=content.group(1)#print(content)#提取出汉字的正则表达式=r'[\u4e00-\u9fff]+'content2=re.findall(r'[\u4e00-\u9fff]+', content)content2="\n".join(content2)#print(content2)#保存到文件file.write("\n\n"+title+"\n\n")#标题file.write(content2)#内容time.sleep(random.randint(2,4))print(f"{title}章节采集完成")#测试,采集一次#break

结果

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1549517.html

相关文章

Redis进阶Redission实现分布式锁

Redis进阶Redission实现分布式锁 基于Redis实现的各种问题怎么解决这些问题redisson实现1、导入依赖2.注册成Bean3、代码实现 基于Redis实现的各种问题 基于Redis实现的分布式锁还具有其他问题 不可重入&#xff1a;按照以上的逻辑&#xff0c;我们一个线程只能获取一次锁&am…

第二十九章 TCP 客户端 服务器通信 - 记录的拼接

文章目录 第二十九章 TCP 客户端 服务器通信 - 记录的拼接记录的拼接多路复用 TCP设备正在关闭连接使用CLOSE命令断开连接 第二十九章 TCP 客户端 服务器通信 - 记录的拼接 记录的拼接 在某些情况下&#xff0c;TCP会将不同的记录连接在一起形成单个记录。如果客户端或服务器…

Fakelocation Server服务器/专业版 Windows11

前言:需要Windows11系统 Fakelocation开源文件系统需求 Windows11 | Fakelocation | 任务一 打开 PowerShell&#xff08;以管理员身份&#xff09;命令安装 Chocolatey Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProto…

【spark】远程debug spark任务(含有pyspark)

--master yarn和--master client都是可以的。 spark-submit \ --master yarn \ --deploy-mode client \ --name "test-remote-debug" \ --conf "spark.driver.extraJavaOptions-agentlib:jdwptransportdt_socket,servery,suspendn,address5005" \ --conf …

TabTransformer 模型示例

代码功能 定义模型&#xff1a; TabTransformer 类继承自 nn.Module&#xff0c;包含嵌入层、Transformer 编码器和全连接层。 前向传播方法 forward 中&#xff0c;输入数据经过嵌入层、Transformer 编码器和全连接层&#xff0c;最终输出分类结果。 定义数据集类&#xff…

【MySQL课程学习】:MySQL安装,MySQL如何登录和退出?MySQL的简单配置

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;MySQL课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 MySQL在Centos 7环境下的安装&#xff1a; 卸载…

CSS3_BFC(十二)

BFC MDN对BFC的解释&#xff1a;块格式化上下文&#xff08;Block Formating Context, BFC&#xff09;是web页面的可视CSS渲染的一部分&#xff0c;是块盒子的布局过程发生的区域&#xff0c;也是浮动元素与其他元素交互的区域。 1、开启BFC flow-root对内容的影响是最低的&am…

【应用介绍】FastCAE-PHengLEI流体仿真

1 风雷组件集成背景 1.1 风雷软件简介 风雷软件是中国空气动力研究与发展中心&#xff08;CARDC&#xff09;研发的面向流体工程的混合CFD平台。平台的建立遵循面向对象的设计理念&#xff0c;采用C语言编程。自2010年开始&#xff0c;气动中心开始着力于工程化品牌CFD软件的…