来源:TVB影视大全人气:536更新:2023-03-19 20:50:51
学会了爬虫,我们可以根据自己的项目需求在网上爬取相应的数据作为数据资料使用。
首先,先来说一下爬虫和Robots协议是什么
然后再来介绍爬虫的基本流程
最后根据实际栗子爬一个豆瓣最近上映的电影来小试牛刀一把
这是在豆瓣爬取的最近上映的电影,爬取数据后自己做的网页效果图。
再看下Robots协议的介绍,robots.txt是一个文本文件,robots.txt是一个协议不是一个命令
robots.txt是爬虫要查看的第一个文件,robots.txt告诉爬虫在服务器上什么文件是可以被查看的,爬虫机器人就会按照文件中的内容来确定访问范围
下图是豆瓣电影页面关于robots协议列出来的访问范围
爬虫和Robots协议是紧密相连的,图上看到的不允许爬的页面就不要去爬,万一涉及到一些用户隐私等方面的东西,之后会被发现而走到法律途径的。
其实有的人会问,爬虫到底爬的是什么?这是有一个很有见地的问题,说白了爬虫拿到的一段是html代码,所以说这个对于我们来说并不陌生了,只要我们把它转换成DOM树就可以了
那么,现在再看上图的右半部份,这是一个对比图
左边的是没有限定Robots协议的,按道理来说admin/private和tmp这三个文件夹是不能抓的,但是由于没有Robots协议,人家就可以肆无忌惮的爬
下面就进入激动人心的环节了,大家跟着我一起手敲出一个爬取豆瓣电影的页面出来
先来看一下整体目录结构
既然是抓取数据,我们就得使用业界较为出名的神器:request神器
那么request到底如何用,一起看代码
看完上面的代码,可以看出,html代码已经出现在眼前了,只要转成熟悉的DOM就可以了
此时可以用cheerio将html转成了dom,cheerio相当于Node版的jquery。
读取内容
首页要先根据豆瓣电影的页面来分析一下,哪些是正在热映的电影,先来看看DOM结构
代码写完了,回味一下都做了什么事情吧
这里我们通过mysql来建立数据库存储数据,不太了解的也没有关系,先跟我一步一步做下去。我们先安装XAMPP和Navicat可视化数据库管理工具,安装完毕后按照我下面的来操作即可
XAMPP启动mysql
Navicat连接数据库及建表
只言片语可能都不及有图有真相的实际,这块就先看看图吧
接下来,连接数据库
首先,我们需要在src目录下创建一个sql文件,这里要和刚才创建的数据库同名,就叫它my_movie.sql了(当然目录结构已经创建过了)
然后,再回到db.js文件里,写入连接数据库的代码
上面代码就已经创建了连接Mysql数据库的操作了,接下来,把内容写进数据库吧
这时我们来看一下write.js这个文件,没错顾名思义就是用来写入数据库的,直接上代码
write.js里到底写了哪些?
SQL语句学习
?表示占位符 这里顺便简单的说一下SQL语句里会用到的语法,无处不在的增删改查
执行读写操作
现在就来到index.js中,开始检验一番吧
完毕,执行一下看看是什么效果,直接上图
代码已经执行完了,接下来再回到Navicat那里,看看数据到底有没有写进去
至此数据抓取及入库操作我们都搞定了,接下来我们可以我们需要写个页面来给展示出来了,由于抓取和写入数据都是在node环境下才允许。所以我们还要创建一个web服务用来展示页面
由于要创建web服务了,所以开始写server.js的内容吧
server服务
写完了server服务了,最后再到index.html模板里看看吧
评分:
通过模板引擎遍历movies数组,然后进行渲染就可以了
能看到这里的朋友都不容易,大家应该会对爬虫的知识有了认识了
顺便发一下代码:https://github.com/chenhongdong/article/tree/develop/爬虫研究/movie
以方便大家参考
小康说生活,滋味各不同。
Copyright © 2010-2022