利用免费工具爬取关键词(数据)的豆瓣读书数据——八爪鱼爬取数据并导出到Excel/Mysql数据库设置示例——关键词:爬虫、读书、实用
目录
原始需求
需求解读
所需软件配置
软件介绍
八爪鱼
Excel
Navicat
Mysql
数据采集及保存
步骤1 探索搜索页面规律
步骤二 八爪鱼批量生成链接,添加参数(前缀+尾巴)
步骤三 采集数据(书名、评分、评分人数、详情链接)
步骤四 评分人数采集处理
步骤五 导出Excel/导入Mysql
A:导出到Excel
B:导入Mysql
关于 重试 和 出现指定元素后执行 设置先放这里 :
小结
原始需求
最近单位有购书计划,想选几本关于数据的还不错的书看看,去某东、某猫、某当网,发现销量高的在豆瓣上大家对书的评论不一定好,但豆瓣关键词搜索又没有评分排序功能,还得考虑评论人数的影响,这样一个个看太慢,要疯了!
需求解读
审题:想选几本关于数据的还不错的书看看,发现销量高的在豆瓣上大家对书的评分不一定好,但豆瓣关键词搜索又没有评分排序功能,还得考虑评论人数的影响,这样一个个看太慢
目标页面:豆瓣、关键词数据搜索
目标信息:评分、评论人数、图书链接
实施方案:利用爬取工具八爪鱼,实现数据快速抓取,并导出Excel进行快速筛选;也可以导入Mysql数据库作为本示例的一个拓展。
所需软件配置
八爪鱼 | 8.2.2.111911 |
Excel | 随意 |
Navicat |
12.0.11(64位) |
mysql | 5.7.21-log |
软件介绍
八爪鱼
不好意思,放错了。
Excel
Navicat
Mysql
数据采集及保存
步骤1 探索搜索页面规律
打开豆瓣读书,搜索关键词:数据,观察搜索结果第一、二、三页。
发现规律没有,第2页的页面与第1页的页面只是尾巴处相差15,第3页与第2页间隔也是15,不难发现15是一页所包含的书信息数,截至写文章前一共134页,故134*15 = 1995是最后一页。
现在我们可以找到所有搜索页面的规律,把网页看成前缀+尾巴的形式,那么前缀就是:https://search.douban.com/book/subject_search?search_text=%E6%95%B0%E6%8D%AE&cat=1001&start=,尾巴(起:0~终:1995)
步骤二 八爪鱼批量生成链接,添加参数(前缀+尾巴)
这样,我们就得到了生成的网址,当然不嫌麻烦也可以自己动手134个!
步骤三 采集数据(书名、评分、评分人数、详情链接)
选择全部就获得了书名和链接两个信息列,如法炮制依次可以点击评分和评分人数来获取评分、评分人数。
步骤四 评分人数采集处理
注意到评价人数的形式为“(XXX人评价)”,为了后续更方便的处理数据(对评分人数进行筛选),我们将评分人数的数据进行正则化处理,将其变成“XXX”最好。
依次按照上图进行操作,可以进入正则表达式匹配,具体啥是正则表达式,大家可以参考链接:正则表达式 - 语法——菜鸟教程:https://www.runoob.com/regexp/regexp-syntax.html
这个时候可能有懒人就跳出来了,那我不会咋办呢,也有办法,继续往下看:
我们的目的说白了就是把(***人评论)里面的***数字部分提取出来,那么我们把这个表达式看成"(" 、”***”、“人评论)”三部分,那么我告诉正则工具起是“(”,结束是“人”就好了。这样数字就提取出来了。按照第一步就自动自动自动(重要的事情说三次)生成了右下角的正则表达式!到了第三步点击匹配再看看匹配结果是不是514即可!
返回到进入工具前的界面,点击确认即可。
这里如果感兴趣的同学可以学习一下正则表达式,那么就可以不使用工具来获得正则表达式,直接编辑即可。
推荐一个认可度比较高的一个教程:正则表达式30分钟入门教程https://deerchao.cn/tutorials/regex/regex.htm 和一个在线测试工具:https://deerchao.cn/tools/wegester/
附带说一句,因为写爬虫经常会用到这个表达式,笔者可谓是经常看,经常忘,第一次接触这个表达式,大家不要指望30分钟能精通,每次用到学就好了,私下经常开玩笑,教程是正则表达式保持30分钟记忆教程,过了30分钟就得重新看了。
返回主页面,看下左下角的数据采集,核对无误,更改下列名,大功告成,就可以开始采集了! ——————你以为这样就可以了吗?过了一会儿发现咋打不开网站了呢?往下看
还有最关键的一步,流程图里设置执行前等待!重要的事情再说一次:一定要设置执行前等待,如果不设置,那么工具会不停顿的疯狂点击链接,可以设想一下如果你是站长,看到有人有如此高频访问网站的操作,肯定以为这伙计是有预谋的攻击,铁定会撸他呀!这个时间设置,一般选随机为宜。同时别忘了应用!保存!
×不设置等待的下场:
再来一次:返回主页面,看下左下角的数据采集,核对无误,更改下列名,大功告成,就可以开始采集了!既然打的是免费噱头,启动本地采集就可以了!
经过大概4分钟的采集,我们获得了1300多条数据,去重后是1141条。
步骤五 导出Excel/导入Mysql
A:导出到Excel
这个是最简单也是便捷的方式,直接按系统提示操作即可!
B:导入Mysql
Step 1 建表
既然是导入Mysql,那肯定是先要在Mysql里建表呀!
两个注意点一定要注意,一个是为了省事儿,一个是确实是个大坑!更别忘了点保存!
Step 2 连数据库
依次对应填入:
服务器名称 | 主机名或IP地址 |
端口 | 端口 |
用户名称 | 数据库用户名 |
密码 | 数据库密码 |
测试成功以后下一步:
最后点击导入即可!
返回Navicat里查看数据表格,大功告成!
关于 重试 和 出现指定元素后执行 设置先放这里 :
小结
本文利用爬取工具——八爪鱼,对豆瓣读书关键词数据搜索结果信息进行采集,并导出进Excel/Mysql两种储存工具中,完成了数据集的收集功能!
有同学想要示例数据集或者对最终排名感兴趣的可以私信!
笔者槿柊,一名默默无闻的电力行业数据分析师。
爱好读不同类型的书,交不同性格的朋友!
利用免费工具爬取关键词(数据)的豆瓣读书数据——八爪鱼爬取数据并导出到Excel/Mysql数据库设置示例——关键词:爬虫、读书、实用相关推荐
- Py之pandas:利用pandas工具输出每行的索引值、及其对应的行数据
Py之pandas:利用pandas工具输出每行的索引值.及其对应的行数据 目录 利用pandas工具输出每行的索引值.及其对应的行数据 输出结果 实现代码 利用pandas工具输出每行的索引值.及其 ...
- python爬虫开发数据库设计入门经典_Python3实现的爬虫爬取数据并存入mysql数据库操作示例...
本文实例讲述了Python3实现的爬虫爬取数据并存入mysql数据库操作.分享给大家供大家参考,具体如下: 爬一个电脑客户端的订单.罗总推荐,抓包工具用的是HttpAnalyzerStdV7,与chr ...
- python爬取新闻并归数据库_Python爬取数据并写入MySQL数据库操作示例
Python爬取数据并写入MySQL数据库的实例 首先我们来爬取 http://html-color-codes.info/color-names/ 的一些数据. 按 F12 或 ctrl+u 审查元 ...
- 如何利用免费工具轻松实现个人号裂变?
在微商界,有句名言:得粉丝者得天下. 个人影响力大小,要看粉丝的多少,企业能否取得长足发展,要看粉丝的多少,国家领导人能否当选,也要看粉丝的多少.粉丝,已经成为了当今社会发展中不可或缺的一部分. 粉丝 ...
- getprivateprofilestring读不到数据_从零到千万用户,我是如何一步步优化MySQL数据库的?...
写在前面 很多小伙伴留言说让我写一些工作过程中的真实案例,写些啥呢?想来想去,写一篇我在以前公司从零开始到用户超千万的数据库架构升级演变的过程吧. 本文记录了我之前初到一家创业公司,从零开始到用户超千 ...
- scrapy 抓取糗百存储到Excel +MySQL数据库+MongoDB数据库
今天来学习一下用框架抓取糗事百科段子,安装scrapy请参考前面文章, 首先创建一个项目,打开终端 scrapy startproject qiubai 目录下会生成一个qiubai的文件 cd qi ...
- 数据对接利用hutool工具类进行xml解析,xml转换成map,然后进行数据入库
数据对接xml解析 <ESBEntry><!--通过MB对请求进行权限验证,验证后将删除AccessControl节点 --><AccessControl>< ...
- [工具]利用EasyRTSPClient工具检查摄像机RTSP流不能播放原因以及排查音视频数据无法播放问题...
出现问题 我们在做流媒体开发的过程中,进程会出现摄像机RTSP流莫名其妙无法播放的问题,而我们常用的vlc经常是直接弹出一个无法播放的提示框就完事了,没有说明出错的原因,或者在vlc的消息里面能看到日 ...
- python怎么爬取电影海报_豆瓣top250海报原图爬取
源码见 功能分析 网上爬取豆瓣电影排行很多,但是由于做一个h5画廊需求大量电影素材,而列表与详情页的图片清晰度满足不了要求,所以决定爬取豆瓣原图,在查看是发现需要登陆,然而登陆后原图链接查看并没有任何 ...
最新文章
- https协议原理过程
- JFinal 源码导读第八天(1) Db.tx 事物
- c#:使用using关键字自动释放资源未必一定就会有明显好处
- 各类攻击 单一协议 pcap数据包 下载网站
- php把400个数组建二维,请教怎么将多维数组转换为二维数组
- Python基础(偏函数)
- 判断不为空和不为空串的方法java
- CSAPP--整数的运算
- Django之tag标签和filter标签
- [C#] LINQ之GroupBy
- Win10系统中蓝牙串口功能启动方法
- git提示Can‘t update: no tracked branch
- 死磕 Framework准没错,大把的高薪岗位等着你~
- 汇编语言,两个数字的想加_8085微处理器中的汇编语言程序将两个16位数字相乘...
- 【图片新闻】俄罗斯的新型高超音速导弹每秒飞行近两英里,“锆石Zircon”很可能是不可阻挡的尖端防空武器
- 【Solr空间搜索SpatialSearch】
- 如何旋转树莓派的显示屏幕
- DLX精确覆盖 hdu4069 Squiggly Sudoku
- 政务大数据系列9:政务大数据的价值链
- 单例模式你会几种写法?