00:00
OK,同学们,那么上节课啊,我们把这个BS的一些基本的语法讲解完了,那么接下来啊,我们要讲一下这个爬取星巴克这些咖啡产品以及图片的一些操作,那这个我们主要还想讲啥呢?就是我们这个BS啊,如何去加载服务器响应的文件,明白吧,各位大家可以有细心的同学可能发现了啊,它这里边好像和这个加载本地文件基本差不太多啊,格式都一样啊,是这样的啊,所以说呢,接下来我们要也应用一下服务器响应的文件,我们来打开一下啊。打开一下星巴克官网啊,打开官网这个啊,这是和京东合作的一个网页是吧,不用去管它,我们把这个官网打开,呃,官网打开之后呢,我们要点击什么呢?我们要点击这个菜单啊,点击菜单,那么我们要干什么呢?同学们,我要把这里边儿的图片。啊,这些图片以及他的这个图产品的名字,我要都都给他爬取到啊,并且呢,给他保存在我们的本地啊,是这个样子的,所以说第一步啊,同学们我们要抓它的接口,我看一下一共有多少页哈,如果只有一页的话,我就不管不管它了,OK,是不是只有一页啊,它不是有多页的,这个简单多了是吧。
01:22
好,我现在呀,来抓一下它的接口,到底当前的这个页面是哪个接口,然后我们来找找,找到之后呢,我们就对它去访问,访问之后是不是再做解析就OK了呀,诶这是我们的一个小步骤啊好,同学们把这个都清空一下,让它的页面干净一下,好刷新它,嗯,这里边有很多图片呢,你看是不是很多图片呢,这些东西我们都PNG是吧?有还有PNG勾,PNG都有很多很多,我们不去管它哈,我们主要先找一下是这个东西,它是不是我们想要的数据,诶看一下provi。Preview里边虽然图片没有展示,但是我们知道,诶就是它了吧,因为这个东西都在呀,所以说我们经过观察preview,再经过观察一下啥呢?观察这里边吧,我看一下这个叫呃阿富奇朵吧,我给他检索一下看有没有啊看这来CTRLF。
02:19
叫啊。来搜一下阿斯奇多有没有啊各位,哎,找到了是吧,就是它,所以这第二个叫什么麦芽雪冷萃对不对,哎这个这这数据有了,所以说同学们这个接口我们就找到了,就是它了。那这接口找到之后,我们接下来啊,创建一个新的文件啊,创新新的文件。然后来写上。上硅谷。爬虫,然后这个叫解析,解析完之后呢,我们这个叫BS4来爬取星巴克。
03:00
数据好,同学们在这里边呢,我们先不着急去做别的,先导入一下,因为我一会儿要用它来干啥呀,来发送请求嘛,对吧,各位,所以URL等于它,那像这种网站呢,因为每个网站呢,它的反扒手段都不一样,那你像有的就校验UA,那有的他可能不就不叫验UA啊,这是不是说不准呢,你搞对象,那那些女生的脾气,她喜欢的东西是不是也不一样啊,各位明白吧,大家,所以在这块呢,我们先不给它加UA啊,但加UV更好。我直接看一下啊,它能不能让我们访问啊,就没设没设限,对不对,点request点啊ul open来ul,然后接下来content是不是要里边的内容了,各位哎,点read。点decode,然后在里边来写上UTF杠八,我们先不做别的啊,先打印一下,打印一下看他给没给我们数据,如果给我们数据了证明诶,这个女生很好追求啊,对吧,我直接就把数据拿到了,但是呢,如果说她设防了,也就是说她做了一些反扒手段,那我们是不是就要来做反反扒呀,对吧?好,同学们,那我现在来运行一下它走。
04:16
好,呃,这里边我确实感觉有点东西多是吧?那我们搜一下吧,来CTRLF叫第一个叫阿阿富什么来着,对吧?诶阿富奇朵我们找到了吧,各位,哎,就找到了它,好同学们,那既然我们找到了这个内容呢,我们就解析它吧,来练习一下啥呀,来练习一下这个我们的BS的语法,好那么接下来注意啊,同学们,这个源码拿到了,我们接下来是不是要做啥呀?BS这个解析了,如果你要想使用BS的话,是不是from bs4import beautiful soup呀,对吧?各位,那它怎么去加载的服务器响应文件呢?是soup等于beautiful soup,然后来写上这个服务器响的文件,再写上L叉L这个语法结构啊,不允许写错,好soup这个变量名也是随便写的啊,然后是beautiful soup。
05:12
在里边来写上content,然后写上L叉LOK了,那么它你怎么去解析这个啥呀?这个图片呢?这个图片的地址又在哪呢?还有这个这个这个姓名,它的一个产品的名字又是什么标签结构呢?我们来看一下,先定位产品的名字。好在这儿。呃,在这的话,我们先把它,哎往下滑一滑,这是我的一个习惯,为啥要滑呢?因为我们知道哈,这里边它一定是什么,包含在这些标签里边,你看Li,再点开Li。A div,什么麦芽雪两脆对不对呀,那也就是说他们应该都是在这个里边。
06:03
这个product里边有一个Li的A的div的它对吧,那下边还有没有啊还有。那这些又是啥?又有一些东西吧的叫冷萃冰咖啡,我们来看一下啊,这个冷萃冰咖啡它是什么样一个结构,冷萃冰啊,同学们应该是不同的系列下边的Li吧。是不是啊,每一个系列都不同,那也就是说product是一个系列啊,是每个系列的一个东西,那我们看一下它系列和系列之间有没有什么名字不一样的地方,同学们看这里啊,这是它的系列吧,诶,这个每一个都是它系列,好像没啥区别对不对?所以说呢,我们要的是所有的数据,就要的是这个系列下边的strong吧,其他的都不需要考虑啊,那在这儿呢,同学们注意,一般我们在干活的时候啊,都是使用先写的叉pass语法,叉帕语法写完之后我们会干啥呀?通过叉pass给它改成BS的,所以说为什么现在的叉pass的受众这么大呢?就是因为它这个插件啊,我认为还是挺好用的啊。
07:11
好,把它打开,我们看能不能获取到这些东西啊,呃,是什么来着,有个ul。Ul下边有一个艾特class是啥来着,等于这个叫它复制一下,诶它好,它有22个,应该22个类别吧,那它下边的什么呢的strong吧strong。瓷状瓷状下边的什么的内容,好,同学们是不是这些东西呢?我们来看一眼啊,叫阿富奇朵,麦芽雪冷萃,然后是冷萃拂乐朵,然后气质什么什么之类的是不是就都拿到了,同学们,诶,这个就是啥呢?最后一个是9OZ甄选玻璃杯看一眼。
08:00
啊9OZ甄选玻璃杯对吧,各位,所以说此时啊,这个数据我们就拿到了啊,这个数据我我们拿到了,有同学老师那你直接选择这个使用叉pass,不我不对吧,我要BS,为什么我们学的就是它呀,那这个东西应该假如说叫name下线list等于soup,那接下来啊,我们就要用啥了呢?用我们的它了是谁呀?在这有个类选择器吧,那同学们我可不可以在这写上一个点。加上谁呢?加一个网格的一个product的值,是不是加这样一个product值,它下边的什么呀?看这加了一个啥,两个斜线,两个斜线代表的是一个后代选择器吧,所以在这加个空格strong。Strong之后呢的内容,同学们,这个test呀,我们在学BS的时候,我们使用的是谁来着,是不是string或者它呀,而在这里边我们不允许直接的给它加在哪呢?加在后边加什么个杠T,没有那个东西啊,没有那个东西,所以说现在呀,我们先打印一下这个name list,看一下给没给我们数据啊来走。
09:16
嗯,怎么是空了呀,是不是什么都没有,同学们哎,什么都没有,什么都没有的话,注意同学们啊,一定是他标签出了问题啊,一定是他出的标签出了问题,那么这个类选择器我们之前说了select可以这么做呀。对吧,那为啥现在出现了这样一种情况呢?就注意我把strong再删掉。看啊,Strong来走。嗯,还是空,那么证明此时我们就出了一个问题哈,你按照他的一种写法咋的,是不是并非没有给就是没有给我们数据啊,哎,我们都知道用类选测器可以做,但是啊,它不行,不行的话告诉各位你可以这么去写,它是ul下边吧,Ul里边我们是不是可以写一个啥来着。
10:09
啊,是不是可以写个选择器类的class等于这个值啊,这个值叫啥来着,叫它吧,哎,那么我们来写上class等于等于谁呀,等于它。你怎么写都行,这个活跃活用的,但是确实有一些标签,它做了一些限制。我们再来看走。嗯,大家你看好像就拿到了吧,所以说在这里边啊,我们怎么写都可以,但是千万别写错啊,千万别写错,因为他有的时候做了一些限制嘛,对吧,那么这个数据拿到之后,我是不是就可以写空格strong了呢?好,我们再来运行一下走。好,我们看拿没拿到啊,是不是每一个都拿到了,对吧,大家那么紧接着在这儿我要做一次负循环的便利,好在这直接打印一下name。
11:05
我们来看一下结果,是不是我们想要的呢?你发现是吧,各位,哎,这个就是都是我们想要的这个数据了,但是呢,我们这个数据想要的是它吗?不,我们想要的是里边的内容stream明白吧,大家哎,这样就可以了,走。你看这个数据是不是就全部都拿到了呀,OK吧,大家然后还能干啥呢,我们还能用调用点get test呀,对吧,Get_test啊这样都可以啊走。是不是就成立了,所以说大家注意啊,BS的应用会或多或少有一些坑,所以说呢,我们在实际的写机开发中,可能用叉pass会稍微的多一些,所以同学们注意啊,你在这里边再给大家多说一句,你在做一些这个定位的时候,定位的时候一定要知道他们分别都怎么去做的啊,好同学们,那么以上呢,就是爬取了星巴克这个官网中的这个名字,那如果大家想练习的话,你再可以去解析一下他的啥呀,他的这个图片啊,好同学们,我把视频暂停一下。
我来说两句