00:00
OK,同学们,那么接下来啊,我们要干啥呢?我们要把爬取的数据啊,给他存储到数据库中,那为了模拟将来我们干活的时候用的数据库,所以呢,我用了一个虚拟机啊,当然呢,为啥模拟呢,也可以用啥呢?用这个云服务器,这都可以啊,都可以,因为云服务器一般都是Linux操作系统的。要么是乌斑图,要么是渗渗透S,所以说呢,我用虚拟机来模拟一下将来我们发生的这种情况,好,那么在这呢,我先进入到我的虚拟机。进入到虚拟机之后,我需要干啥呢?我需要在这个数据库中啊,去创建一个和我刚才爬取到的数据的结构一样的表,对吧,一样的表,那么我们来看一下啊,怎么去做呢?啊,一个个来。在这我先连到啥呢?先连到我的MY。
01:01
1234好,进来了,进来之后呢,我先创建一个我们的一个数据库,假如说create database,起个名叫SPIDER01,然后给他指定一下字符集。好,这个数据库啊,我就创建完了,那如果有大家有同学说老师我数据库不会呢,那你到时候可以私信我对吧,那么紧接着在这里边干啥,我使用一下这数据库。啊,在这use,然后叫SPIDER01,然后我在这里边同学们,我接下来要干啥呀,我要创建一个这个表create table叫啥呢?叫book啊,咱是不是要取个book呀,对吧?那么book里边同学们注意,我要指定几个数据呢?我们要指定两个数据吧,对吧?一个叫啥呀?叫做name,一个叫啥呀?叫src,所以说此时大家注意啊,先给它一个ID。
02:05
Int一个主件啊,Primary k auto下限ment啊,这是一个主件啊,咱不用去管它,接下来我们来了啊,接下来写啥呢?内,然后给它一个啥呢?给它一个值,假如说给它一个128啊,这是一个值吧,128长度,那再给他一个啥呢?就src再给它一个长度。那128好同学们,那这张表啊,我就已经创建成功了,对吧,但是这张表里边我们来查一下是不是什么都没有啊,对吧,各位哎,什么都没有,一会呢,我们就要把它插入到我们这张表里边,一边爬一边往表里边插入,大家能听懂吧,OK,同学们啊。那这呢,我先把它放在这儿,那接下来啊,我们要查一下,查询一下我们这个虚拟机的一个IP,一会儿我们要用啊,咋查呢,叫if can f啊这个叫啥叫130对吧?呃,192.168.231.130 OK同学们好,那么这张表创建成功了,这个IP我也找到了,那接下来我们要做啥呢?
03:19
所以说大家注意啊,数据入库这个东西我们一点一点来啊,先要配置一个几个参数在哪呢?在SING4里边随便找个位置,我就去找他,找这吧,找在管道的上边吧,随便找位置,我们先写几个参数啊,第一个叫DB_host这名呢,我们是随便起的,等于啥呢?这叫我的主机地址是192.168.231.130,刚才我们是不是得到的点130,看对不对,192.168.231.130。我们拿到它之后啊,既然还有叫DB的端口号,大家一定要注意啊,端口号是一个整数的一个值,3306 MYSO顿号,它是一个啥呀,是一个端口号是一个整数。
04:18
啊,注意啊,别加字符串,加字串不好使,紧接着还有啥呢?DB下划线,我们的user user的值就是我们的用户名,我叫root啊,如果你有其他名无所谓哈,接下来DB下划线还有一个叫啥password。啊,Password等于啥呢?我的密码是1234,还有我们叫DB的名字,这个name叫我们数据库的名字,我们咱们叫啥呀,SPIDER01对吧,最后我们也要指定它的字符集叉set等于UTF杠八,哎就这几个值,那这几个值,如果说大家以后你想插入到你的数据库的话,把我的代码,你我们的主机地址,把你这个用户名和密码改掉,还有数据库名,其他的暂时不用改。
05:09
啊,因为这是我的数据啊,你改你改成你的就完事了呗,对不对,那么这个东西他要干啥呢。那同学们他要干啥呢?我们是不是在管道中下载数据啊,既然它在管道中下载数据,那么我们就应该咋办,是不是自己造一条管道啊,对吧?造一条管道,那么class写谁MY啥pipe烂。那拍不来,好同学们在这里边来,然后我们是不是要有这样一个数据啊,对吧,哎,这样一个数据。好,把中间这个干掉啊,不要它,那你既然有它了,我们要做什么呀,我们是不是要在三星里边配置自己的管道呢,对吧?哎,配置自己的管道。这个管道里边我们要干什么,把这个来指定一下它。
06:02
好,然后点儿谁呀,点MYSQ拍peline对吧,各位,然后给他一个优先级,三百零幺三百零幺,好,那么紧接着同学们我就要在哪啊,就要在这里边去写代码了,写的时候呢,咱们同学注意啊,如果你没学过PYMYSQ的话,这块稍微有点难度,但是。它的模式都是统一的啊,模式都是统一的,也就是说你把我这张代码照搬过去,你就可以直接用了啊,根本就啥也不用改第一个啊,同学们注意了,你这个要连MYSQL的话,你是不是得先做一个连接呀?对吧,连接之后我们再去干啥呀,往里边插数据,然后最后再关闭一样的吗。对吧,你要跟其一个东西建立关联,你是不是先建立连接,然后操作它,最后关闭呀,所以说在最开始的时候呢,我们也可以给他一个啥呀,叫open下线spider,这可以的哈,然后spider。
07:02
然后在最后呢,我们再给它关闭DeFine close下线spider对吧?OK,那么这都有了之后,我们要咋写呢?大家注意啊,你在这儿先要把刚才的一些配置拿过来。From啊sc.s.project有同学老师你这个啥用啊是吧?我马上就告诉大家来导入它,那么这句话的作用它可以加载。Settings文件啊,可以直接把settings文件加载过来啊,咋加载呢?大家看现在写上settings。Settings等于啥?Get project project settings加载完了之后,同学们注意啊,加载之后你是不是就可以获取到刚才那些参数了呀,对吧?Settings的啥?
08:00
第一个叫,诶我们把它复制过来,为啥呢?这个时候大家注意啊,不要答了,你怕你打错,如果在这儿一旦打错了,你将功亏一篑呀。把它注释一下,第一个是不是叫DB host,你要它呀,对吧,然后紧接着我们再要谁呀,一共六个吧,3456OK,它分别对应的是端口号啊。对吧,用户名儿啊。还有啥呀,用户密码啊。OK,还有啥呀,还有我们的数据库的名字。还有我们的字符集的名字呀,对吧,你把这都拿过来,然后这几个都不要了啊,不要了,拿过来之后大家注意啊,为什么要用它。啊,为什么要用它,就是因为一会儿我们连接的时候,你这些值都是必备的参数。
09:01
啊,必备的参数来写上self。点第一个叫host吧,诶等于谁等于它第二个我们把它复制一下,诶你就这么去改,记住啊,你现在我写的这个代码,你全都不用去改,不用去做,你只需要改啥呀,改数据库里边settings这里边参数,第二个端口号,第三个你的用户名,第四个你的密码。第五个你的名字,第六个你的字符集。啊,字符集好,那么这几个都完事之后,同学们注意,我就要做连接了,咋连接呢?大家注意啊,这个连接在哪写,我直接填掉啊。啊,掉鱼汤这个东西在哪儿?同学们,我们可以在这定义。那可以在它的下边来定一个函数。Iy。
10:01
啊,或者说直接在里边写也可以啊,也可以啊,然后把它拿过来,我为了让大家未来我们用的更加轻松一点,所以说在这儿我就写它了,那么它怎么去连接呢。self.con。对吧,等于啥,等于现在啊,同学们注意,我要使用PYMYSQL了,但是现在我是不是没有PYSQ啊,我我给它干啥呀,安装一下。来我们怎么安装啊,你现在是不是先得跳到E盘呢,同学们对吧,你在我因为我安装在E盘里边啊,CD,然后CD对吧,然后pip in道叫PYMY,然后杠IHTTPSPYPI,点豆瓣,点come,杠simple。好OK了,我们按一下它为啥,因为这个连接数据库这个东西,它是需要这个东西的,所以说呢,我们才要安,那现在我们应该咋整呢,进来要写啥咋连接呀,你这个不里边不是连接数据库吗?叫PY,你得导一下是吧,导一下我们才用import叫py Mexico。
11:15
啊PY,那PY咋用来PY点大家注意啊,这个方法叫做connect。Connect connect里边为什么我们要有六个参数,原因就是因为你这几个从那个setting里边读取,现在终于用上了,为啥你看点进去,这里边儿还有什么connection呀,还有什么connection呢?对吧,有很多很多是吧,我们来点点看都有啥。Connection connection里边诶同学们看是不是有这么多的参数啊,而这里边我们只需要六个啊,只要六个12345,还有最上面那个六个啊,一共六个,那么这个六个我就用上了,千万不能写错啊,第一个host等于你上边是不是写完self.host了,这是啥呀?你主机地址啊,那接下来再来第二个用户名吧,等于self.user还有啥,还有这个呃,顿号啊sorry,中间是不是落个顿号,Power等于啥?等于self点端口号,然后来用户,用户完之后是密码吧。
12:30
Password等于你看这俩就哪个呀,哎,你你要知道啊,你别写错了啊,然后self.password好,Password完了之后我们上谁了,Name就是你数据库的名字呗,我们在这里边记住啊,它叫DB啊,等于self点儿name好最后一个。我们叫做char set等于self.char set,哎,这几个这六个参数是你必须要使用的一个连接的参数,所以说我们铺垫了半天就为了这个连接,那这个连接之后它有啥用啊?
13:09
他谁执行呢?大家可以看这里。看这里它执行的时候,当你有它了,有它之后,我们接下来是不是有个curor curor是啥东西,通过它才能来执行口呢?啊同学们注意,通过它才来执行四口呢,那么我们就写个啥呀,self.cur。等于啥self.con点什么科哎,这样一个对象就有了,这个对象要干啥?它能执行四个口语句,就能往数据库里边插了,你现在做的一切都是因为它啊,都是因为它,那么现在呢,我们来写一个啊,写个啥呢?写个在这里边加啊,因为你这里边要获取谁呀,获取item值嘛,四扣。等于啥呀,得这么写,这里边注意啊,同学们,很多同学最开始不会写circle口的原因就是你练的特别少,单词容易偏错,我们是不是book对吧,然后写我们要加啥呀。
14:09
啊,同学们,我们要加的是什么数据啊,是不是一个是name,一个是啥来着src啊,所以你就写呗,你第一个我们叫做啥叫做name对吧,第二个叫啥叫src完了然后空格values啊,千万注意啊,Values,然后紧接着在里边啊注意我们咋写,我们写一个大括号。一定要给它加个啥,加个引号啊,双引号这里边的值,然后接下来我们干什么,哎,我们来解释就这完事了,但是给它值嘛,Format form met里边传的是item,第一个是name item里边值对吧,第二个是item里边的。SC,哎,这样的话,一个思考语句就已经结束了,那我接下来是不是要执行啊,Self点科。
15:00
啊,这个是C啊CU我说咋没打出来呢,CU科or.e里边传的就是你刚才写的这个啥S口,然后最后呢,我们要干啥,我们要给他提交一下。点commit啊点commit要提交一下注意啊,同学们写个小注式。他是来执行SQL语句,那么这个是提交提交,OK,同学们那就完事了,那你最后要干什么,是不是要关闭呀,你关你提你完事之后,你是不是要关闭呀,对吧?Self。注意to点什么closer.close,然后接下来再来self.soon.close OK了,同学们这就查数据库了,这里边我们最大的不得劲的地方就是啥,你在三星配置六个参数,我们需要在这给它读过来,然后使用它,那同学们我们来看一下可不可以。
16:04
那我们来看一下可不可以来,现在我们来运行它。走,嗯,好,同学们看一下有个谁UN tap什么encoding啊,谁encoding了。啊,同学们在这是不是有有一个小错误啊,谁进头顶了。看一眼,所以说在这里边注意啊,同学们谁先偷听了呢?我们不知道,但是我们编码同学们注意啊,我们是不是写了一个编码在哪,是不是在这有个小编码,你这里边你随便找,还有啥有编码吗?没有,只有他自有编码,那为什么他报错了呢?注意啊,注意这个UTF杠八的杠。这盖不允许写。啊,不允许写,它识别不了,所以在这儿你要管它干啥呀,给它去掉诶这个参数中有两个需要注意的,参数中这个都是坑点,所以说我带大家踩屏以后你就不会报错了啊,参数中一个叫做端口号,一个是啥呢?一个是字,这个字符集啊都要注意。
17:19
啊,注意一个是啥,必须是整数一个不许写杠,千万注意啊同学们,那么接下来我们再来运行一下,看你看。有没有数据,现在有点卡对吧,为什么?因为我们开了两条管道,那么这两条两条管道一个是下载接三数据,一个是干啥呀,往数据库里边传,所以大家注意啊,这些东西我们都需要干啥去验证,看这里边有没有数据啊,对吧?哎,现在我们再来查一下数据,走,你看有没有数据,再查再查再查。再查一点点查520条没问题吧,各位对吧,诶这就插入进到哪儿了,插入到数据库中了。
18:01
对吧,好,现在结束了吧,查到数据库中了,所以现在我们的数据已经全都来了,但是有同学可能还会有一个小问题,老师啊,你这个是不是只查只查了啥呀?只查了一下这个,呃,这个13页数据啊,你能不能给我查所有的数据啊。这也是我们career spider中的最后一个知识点啊,最后一个知识点啥呢?大家看现在我们的页码不仅仅是什么啊,我们的页码是不是不仅仅13页,我点13看。再后19看是不是很多很多页,同学们,那这里边你只能爬13页,那我还咋接下来咋办呢?同学们,接下来我们一个单词就搞定刚才我们的这个问题。我把阶层去掉。去掉。好,去掉之后同学们看哈,我把read里边这个,我之前不改过一个false吗?我现在给它改为true。
19:05
哎,把它改为处,改为处之后我们会发生什么呢?同学们,你再看。你再看走,接下来的时间可能稍微会长一点,对吧,那为什么呢?因为此时啊,我们不仅仅爬取的是多少,是13页的数据,而是啥一直在爬,直到爬完。那有同学问老师,这是为啥呢?我们现在已经爬完了,爬了多少条数据呢?同学们看。走之前是13页的话,是1500多吧,我们现在往下划划划划划看看看是不是12000条数据啊。对吧,各位一万两条,2000条数据页,40条,一百二是一页,对吧,所以说如果没有猜错的话,它的这个值的界限是不是在100页左右走。
20:05
大家看是不是在100页左右对不对,那有同学可能就会问了,那你数据库进来了吗。查呀看呐,同学们,对走,我们再查走,你发现4520条没问题吧,各位4520条数据全部进来了,这个包含之前的数据啊,包含之前540条啊,包含之前540条,所以说大家注意,现在我们数据全部都进来了,但是有同学可能会有疑问,老师你这个处代表啥呀,大家看。你这里面的处代表的是是否跟进,就是按照链接区域的规则一直跟进,假如说你现在到88对吧,你88的时候,你看到100了吗?看不到,你看到94了吗?看得了,看得了的话咋办?它继续往后提取,所以说同学们就是当你的这个值为触的时候,无论你有多少页,我不需要再次判断。
21:03
所有的数据我全都拿到了,听懂了吗?各位,诶,这个案例中我们讲解了啥呀?我们讲解了怎么入库,但是入库呢,如果大家你要没学买soq会稍微的有点蒙蒙圈,但是我告诉各位,我给大家封装的这个东西以后你可以直接拿走去用,你改一下啥so后一句就行了,其他都不要改啊,包括我们的这个follow等于处的一个讲解,好同学们,我们接下来把视频暂停一下。
我来说两句