Python爬虫实战,requests+openpyxl模块,爬取小说数据并保存txt文档(附源码)
前言
今天给大家介绍的是Python爬取小说数据并保存txt文档,在这里给需要的小伙伴们代码,并且给出一点小心得。
首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的人会很多,所以我们需要考虑更换代理IP和随机更换请求头的方式来对小说数据进行爬取。
在每次进行爬虫代码的编写之前,我们的第一步也是最重要的一步就是分析我们的网页。
通过分析我们发现在爬取过程中速度比较慢,所以我们还可以通过禁用谷歌浏览器图片、JavaScript等方式提升爬虫爬取速度。
开发工具
Python版本: 3.6
相关模块:
requests模块
parsel模块
tqdm模块
pandas模块
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
文中完整代码及小说,评论留言获取
思路分析
浏览器中打开我们要爬取的页面
按F12进入开发者工具,查看我们想要的小说数据在哪里
这里我们需要页面数据就可以了
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 responsedef 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.htmlindex_url = 'https://www.biquges.com' + indexresponse_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学习路线图(告别不入流的学习)
Python爬虫实战,requests+openpyxl模块,爬取小说数据并保存txt文档(附源码)相关推荐
- Python 爬虫实战,模拟登陆爬取数据
Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...
- Python爬虫实战系列(一)-request爬取网站资源
Python爬虫实战系列(一)-request爬取网站资源 python爬虫实战系列第一期 文章目录 Python爬虫实战系列(一)-request爬取网站资源 前言 一.request库是什么? 二 ...
- python爬虫实战(一)--爬取知乎话题图片
原文链接python爬虫实战(一)–爬取知乎话题图片 前言 在学习了python基础之后,该尝试用python做一些有趣的事情了–爬虫. 知识准备: 1.python基础知识 2.urllib库使用 ...
- python3网络爬虫--爬取b站用户投稿视频信息(附源码)
文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析数据加载方式 2.分词接口url 3.分析用户名(mid) 四.撰写爬虫 五.得到数据 六.总结 上次写了 ...
- python爬虫实战之百度新闻爬取
百度新闻信息爬取 目录 百度新闻信息爬取 序言 获取在百度新闻中搜索"阿里巴巴"的网页源代码 编写正则表达式提取新闻信息 数据清洗并打印输出 实战完整代码 序言 通过对百度新闻标 ...
- 【Python爬虫实战】使用Selenium爬取QQ音乐歌曲及评论信息
本文对使用到的技术仅做简单的介绍,若想了解更多,请前往相应的官网网站进行学习. 本文适合对爬虫相关知识接触不多的新手,主要是普及Selenium如何做爬虫,大佬请跳过. 1.Selenium简单介绍 ...
- 利用python爬虫(案例6+part14)--如何爬取科研数据
学习笔记 文章目录 Ajax动态加载网站数据抓取 动态加载的类型 那么该如何抓取数据? 如何得到JSON文件的地址? 观察JSON文件URL地址的查询参数 JSON格式数据转换成python字典 如何 ...
- 爬虫实战——绝对通俗易懂,爬取房产数据
爬取房产数据 爬虫介绍 实战目标 1.获取url 2.利用BeautifulSoup获取html的索引 3.查找所需数据索引 4.正则表达式获取所需要的信息 完整代码 爬虫介绍 简单介绍一下爬虫,百度 ...
- python3APP爬虫--爬取王者荣耀小姐姐cosplay照片(附源码)
文章目录 一.絮叨 1.接上 2.启下 二.代码 三.查看数据 四.总结 一.絮叨 1.接上 自己挖的坑,自己填.上一篇python3APP爬虫–爬取王者荣耀英雄图片(附源码)爬取了王者荣耀英雄图片, ...
最新文章
- Flash Builder 找不到所需的Adobe Flash Player调试器版本的解决办法
- 未来的信息安全管理人员应当具备哪些技能
- poj 2355(简单dp)
- 可疑文件_特制的ZIP文件能够绕过电子邮件安全网关
- clover 主题_Clover主题更换
- 2017-2018-1 20155313 《信息安全系统设计基础》第五周学习总结
- ubuntu12.04 php环境搭建,Ubuntu12.04筹建php开发环境
- 青龙面板2.8 Bot配置教程
- 【编程常识】关于 Visual Basic 6.0 语言
- 微信加人就服务器频繁,微信加同一个人好友,提示操作过于频繁,请稍后重试!这个是什么意思啊?...
- MYSQL之数据库高级SQL语句详细操作步骤详情介绍
- 《德鲁克管理思想精要》读书笔记7 - 如何做人
- Python中的装饰器、迭代器、生成器、推导式、匿名函数和高阶函数
- 程序员过高工资导致加班?应该降低程序员工资?网友:放过其他苦逼的程序员吧
- 迭代阈值图像分割matlab,Matlab 图像分割 (阈值处理)
- 给HashMap排序的方法
- filezilla定时上传_ftp定时任务上传文件,ftp怎么做到定时任务上传文件
- 实战 | 基于 Serverless 技术的视频截帧架构如何实现?
- 一种具有细粒度和多尺度的多源跨模态遥感图像检索方法
- JetBrains 是如何看待自己的软件在中国被频繁破解的?
热门文章
- C语言函数指针【第022讲】
- Ai studio 使用教程:
- IE11 SVG对象不支持 parentElement和children
- asynchttpclient 超时_ DNF:鬼泣技能加点3个流派分析,超时空漩涡与普雷思路不同!...
- 激战2怎么选最新的服务器,激战2怎么换服务器
- 【虹科直播回顾】笔记及问题解答 | AR解决方案助力数字工厂降本增效
- CSS基础知识——定位
- 怎么写伪原创文章,可以输入标题自动生成么?
- oppo r15 android 8,质的飞跃?OPPO R15将搭载基于Android 8.0的全新ColorOS 5.0
- 写一个垃圾桶开关盖子的动画其实很简单