Python爬虫实战,requests+openpyxl模块,爬取小说数据并保存txt文档(附源码)

news2024/11/17 7:37:38

前言

今天给大家介绍的是Python爬取小说数据并保存txt文档,在这里给需要的小伙伴们代码,并且给出一点小心得。

首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的人会很多,所以我们需要考虑更换代理IP和随机更换请求头的方式来对小说数据进行爬取。

在每次进行爬虫代码的编写之前,我们的第一步也是最重要的一步就是分析我们的网页。

通过分析我们发现在爬取过程中速度比较慢,所以我们还可以通过禁用谷歌浏览器图片、JavaScript等方式提升爬虫爬取速度。

开发工具

Python版本: 3.6

相关模块:

requests模块

parsel模块

tqdm模块

pandas模块

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

文中完整代码及小说,评论留言获取

思路分析

浏览器中打开我们要爬取的页面
按F12进入开发者工具,查看我们想要的小说数据在哪里
这里我们需要页面数据就可以了

源代码结构

Cookie获取

Cookie

代码实现

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
    #'Cookie': '你的Cookie'
}

def get_response(html_url):
    """发送请求"""
    # headers 字典类型 键值对 :隔开
    # headers 请求头的作用: 把python代码伪装成浏览器对服务器发送请求
    response = requests.get(url=html_url, headers=headers)
    time.sleep(6)
    return response

def save(name, title, content):

    with open(name + '.txt', mode='a', encoding='utf-8') as f:
        f.write(title)
        f.write('\n')
        f.write(content)
        f.write('\n')

def get_novel_content(html_url):
    response = get_response(html_url)
    # parsel 解析数据 是需要把获取到的html字符串数据 转换成 selector 对象
    # selector 对象 调用封装好的 css选择器 xpath
    # 解析数据 提取小说url章节地址 小说名字
    selector = parsel.Selector(response.text)
    # css选择器 通过标签属性 提起数据
    name = selector.css('#info h1::text').get()
    href = selector.css('#list dd a::attr(href)').getall()
    # get 获取一个标签内容[字符串]  getall 是获取所有标签属性内容[列表]
    # 想要把列表里面每一个元素都提取出来的话, 是需要通过遍历
    for index in href:
        # https://www.biquges.com/10_10770/6896120.html
        index_url = 'https://www.biquges.com' + index
        response_1 = get_response(index_url)
        selector_1 = parsel.Selector(response_1.text)
        title = selector_1.css('.bookname h1::text').get()
        print(title)
        content_list = selector_1.css('#content::text').getall()
        # 保存文本数据 是字符串的形式
        # 把列表转换成字符串 str() 强制转换数据类型
        content = ''.join(content_list)
        save(name, title, content)

结果展示

数据保存

最后

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

里面有适合小白新手入门的实战教程给到大家~

快来和小鱼一起成长进步吧!

① 100+多本PythonPDF(主流和经典的书籍应该都有了)

② Python标准库(最全中文版)

③ 爬虫项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/82932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web网页设计与开发:基于HTML+CSS+JavaScript简单的个人博客网页制作期末作业

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

怎么让文字转换成语音?一步一步让你学会

在日常的生活中,我们经常会需要将文字转换成语音的情况,例如广告词、给文本配音等等,当然我们就简单的方法就是自己手动进行配音,但是如果没有专业的设备和配音环境,是很难配出很好的效果的,这该怎么办呢&a…

飞链云智能机器人-基于ChatGPT的有趣问答

最近ChatGPT火起来了; 可玩性很高,不亚于之前AI绘画的视觉冲击;这次ChatGPT带来的是逻辑冲击;上下文逻辑远超现有市面上其他所有的AI对话机器人; 有人用技巧训练ChatGPT,ChatGPT机器人宣言要毁灭人类&…

备战2023蓝桥国赛-传纸条

题目描述: 解析: 这道题想了我好久,一开始我是想假如只走一条路线,从(1,1)走到(m,n),这种问题该怎么解决呢?针对这种问题我是设了dp[k][i][j]表示走了k步到达(i,j)的好心程度之和的…

[附源码]JAVA毕业设计迎宾酒店管理系统录屏(系统+LW)

[附源码]JAVA毕业设计迎宾酒店管理系统录屏(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目…

R语言中使用多重聚合预测算法(MAPA)进行时间序列分析

最近我们被客户要求撰写关于时间序列分析的研究报告,包括一些图形和统计输出。这是一个简短的演示,可以使用该代码进行操作。使用MAPA生成预测。 > mapasimple(admissions)t1 t2 t3 t4 t5 t6 t7 t8 t9 t…

ElasticsearchRestTemplate 和ElasticsearchRepository 的使用

操作ElasticSearch的数据,有两种方式一种是 ElasticsearchRepository 接口,另一种是ElasticsearchTemplate接口 SpringData对ES的封装ElasticsearchRestTemplate类,可直接使用,此类在ElasticsearchRestTemplate基础上进行性一定程…

Kibana:使用 Maps 来显示分布式的团队

在我之前的文章 “Kibana:如何在 Maps 应用中显示图片提示” 里,我展示了如何在 Kibana 中使用图片来展示一个图片的提示。这个在很多情况下是非常有用的,比如在疫情发生期间,我可以通过点击地图上的点来查看发生疫情人员的详细情…

ADI Blackfin DSP处理器-BF533的开发详解40:图像处理专题-GrayStretch 图像的灰度拉伸(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像的灰度拉伸,代码运行时,会通过文件系统打开工程文件根目下" …/ImageView"路径中的 t…

回归预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测 目录回归预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测写在前面效果一览基本描述模型描述程序设计参考资料写在前面 程序获取 | 机器学习/深度学习程序获取方式&#xff0…

Django学习第一天记录

1.安装Django(Windows环境) 首先需要确定系统中存在python环境,当前,本机的python环境为python 3.6.6,可以使用命令python --version进行查看。 在python环境成功搭建的基础上,我们使用命令pip install django即可进行django环境…

虚拟现实解决方案,实现 VR 数智机房

如今,虚拟现实技术作为连接虚拟世界和现实世界的桥梁,正加速各领域应用形成新场景、新模式、新业态。 图扑软件基于自研可视化引擎 HT for Web 搭建的 VR 数据中心机房,是将数据中心的运营搬到 VR 虚拟场景。以数据中心实际场景为基础&#…

Chaos Vantage这款渲染器有多强,一起来了解一下

Chaos Vantage 是最老牌渲染器之一的VRay开发公司Chaos新开发的一款实时GPU渲染引擎,以前的名字是Project Lavina,首次在Siggraph 2018上作为技术预览展示,官方定位是“在完全光线追踪环境中探索大型3D场景的工具”。 与其他实时渲染解决方案…

头戴式耳机适不适合跑步、分享几款最适合跑步的耳机

激情的运动和美妙的音乐毫无疑问是绝妙的搭配,几乎每天都驰骋在田径场上的我,一直非常关注运动耳机,也有不少朋友找我推荐运动耳机。运动耳机的选择有很多,但是极度靠谱的产品却是真的很少!如果你也不希望你在选购运动…

双十二大家都在买哪些书?这份书单请码住

双十二来啦,这一天也在提醒着我们这一年就要结束了。虽然距离上次买买买才过去不久,但是想读的书却在时刻增加。 这个双十二,依旧给大家推荐好书,根据近期搜索人气、销量排行、读者口碑整理了“计算机新书”“2022最受欢迎图书”“…

C#+SqlServer超市管理系统的设计与实现

目 录 1引言 1 1.1课题研究内容 1 2系统需求分析 1 2.1系统模块构建 1 2.1.1系统整体结构功能模块 1 2.1.2前、后台功能模块 2 3 数据库设计 3 3.1 E-R图和关系图 3 3.2数据库表设计 4 4系统实现 7 4.1 前台模块 7 4.2 后台模块 14 5 结果测试 24 5.1前台模块的测试 24 5.2后台…

教你制作GIF表情包,逐帧动画制作

我们经常看到很多著名的电影场景都被制作成GIF动画,非常有趣。下面2分钟教你制作GIF表情包,方法很简单,一起来学习吧! 方法一:手机制作GIF 我们来看看如何在手机上制作GIF,您需要使用刷新视频编辑工具。打开…

南方农机杂志南方农机杂志社南方农机编辑部2022年第24期目录

南方论坛《南方农机》投稿:cnqikantg126.com 基于物联网的食用菌日光温室终端控制研究 崔玉萍;席雪琴; 8-1016 基于颜色统计的水果采摘机器人水果识别的研究 夏康利;何强; 11-16 基于MATLAB/GUI双作用椭圆轨道滚柱泵人机界面设计 陈舰; 17-20 电动自…

nodejs 引用 canvas报错:without installing the canvas npm package

Error: Not implemented:HTMLCanvasElement. prototype.getContext(without installing the canvas npm package) 试了node 14.19.1 和 node 16.15.0 两个版本的都不行,即使是npm install canvas 成功了,运行也会报错,困扰了好久,…

【Python百日进阶-数据分析】Day125 - plotly.express.scatter():散点图

文章目录一、散点图语法二、参数三、返回类型四、示例4.1 array_like 对象4.2 DataFrame 列4.3 使用列名设置大小和颜色4.4 颜色可以是连续的,也可以是离散的/分类的。4.5 所述symbol参数可以被映射到的列,可以使用多种符号。4.6 Dash 中的散点图4.7 散点…