00:00
OK,同学们,那么上节课呢,我们讲了这一个基本应用对吧?但是有同学可能细心同学发现了,哎,老师啊,我这里边怎么那么多的东西啊,它分别又是啥呢?哎,那接下来呢,我们就给各位同学在这儿一一的去描述一下,我们用五八同城的案例吧来描述一下,然后这是我们第一个要做的哈,紧接着第二个要做的就是我们得看看这个response里边有哪些属性和哪些方法,而这些东西我们是不是得关注一下啊,诶,这是我们这个案例的一个讲解。那接下来呀,我们就用五八同城这个网站,这个神奇的网站是吧,我们来试试五八同城,好来点进去,在这里边儿呢,我们做一个检索吧,来找一下这个前端开发。好嗯,这个前端开发好就是它了,我们现在呀,右键检查,检查之后呢,我们在这儿啊来刷新一下走嗯,好嘞,同学们,那就是它了,这是不是呢,我一看呢,这页面啊,应该没问题吧啊preview包括response一看都是啥呢?都是它的这个数据对吧?诶尤其一看bra这里边是不是都有啊OK,同学们,所以说这个接口我们就找到了啊,就是它了。
01:24
对不各位诶这就是这个接口了,好,那接下来我们要创建一个项目啊,创业项目,然后干啥呀,用五八同城来访问一下子啊在这呢,我们CD到这个页这个文件夹下。好,那么紧接着现在你的第一步是不是要创建一个项目啊,创建项目咋创建来着?Sc start project吧,来起个名,那起一个啥名呢?同学们,我们之前是SC什么下划线,然后写的一个名字吧,那这里边写上五八同城行吧,五八同城下划线,然后写一个序号的名字,对吧?各位,因为它不能放前边嘛,我们只能放这是吧。
02:13
好OK了,那这项目已经成功的创建了,我们来看一下有没有来看是不是啊,诶在这有,那在这有的话,接下来我这个爬虫文件不没创建的吗?对吧?好,那接下来我要创建一下爬虫文件,创建爬虫文件是不是在这spiders里边了,对吧,各位好,所以说现在呢,我CD一下SC,哎,然后再来。再来spiders对吧,在这里边来创建,那在这里边我们使用什么指令来创建来着,是不是scy JA spider,然后写上一个名啊,假如说叫同城,再加上这个地址吧,对不?各位哎,再加这个地址来,我把它最大化一下,看是不是他好是的来走你。
03:01
好,他报了一个什么错,同学们啊,他说了这个不是内部命令,但是同学们注意啊,这是因为这个接口的特殊的名字的一个东西,但是它不重要啊,你它不是运行的哈,而我们这里边是不是已经创建了一个同城的一个基本模板呢?所以这句话就没所谓了啊,就没所谓了,好同学们我们来看一下他创建没创建成功,诶同城点它,诶有了吧,有了,那么这个有了之后,同学们第一步先别干别的啊,把这个HTTP给我干掉啊,不要你如果这个有后边这个杠也可以不要,要也没关系啊,无所谓。那么这个里边啊,现在我看能不能进来啊,在里边输入一个山东。菏泽是吧,山东菏泽。
04:02
然后什么来着,槽线是吧,槽线好,同学们,我们来运行一下这个爬虫文件,看看它可不可以执行呢?如果不可以执行,我们是不是在找其他内容,SCSCCRA加上一个同城第一个注意啊,同学们,如果他做了反扒,第一个你就要干啥呀,你就要找他的。Rob包协议吧,走嗯,好,看看有没有山东菏泽有没有啊,没有,但是在这儿他是不是给我们了一个提示啊,Rob包协议啊,对吧,所以说现在呢,我们先把谁呢,这个robots协议给他注释掉,不要了,我不遵守你是吧。来走,一般大的网站都需要默认情况下遵守它,那么我们来看一下山东菏泽曹县有没有,是不是有啊,各位OK,好,同学们,那这个有了证明我这里边儿啊,我就执行了,哎,我们又一次做了啥呀,做了这样一个小案例,但是大家先别着急,我在这儿啊,创建一个文件。
05:08
这个文件我们主要说明的有两点,第一点就是啥,就是项目的结构啊,这是第一个问题,第二个问题就是啥就是response。对吧,属性和方法,哎这几个,这两个是我们这个小案例要研究的,那么它的项项目结构都是啥呢?首先是这个样子的啊,假如说项目名字,哎,这是最外边的项目名字,下边还有一个项目名字,哎,这个结构啊,项目名字的下边有啥呀?有第一个叫spiders文件夹,哎,Spiders文件夹里边默认情况下有一个init Python文件,哎,那这个文件夹我先说明一下子啊,它存储的是爬虫文件。
06:08
啊,存储的是盘文件,这存储的是也可以说自定义盘文件啊,都行好,那么与spids文件相同一级目录的第一个还有个init,暂时这两个文件带init都不用去管它,那么紧接着是有啥呢?叫it it这个是啥呀,大家先有印象啊,注意你没有必要把它背下来,后期我们都是一点点应用,你就自然而然就知道了啊,所以在这块呢,没不没有必要把它特殊的去背下来啊,没用,那它是干啥呢?是定义数据结构的地方,你就将来你说白了吧,你将来爬谁呀?对吧,你爬谁呀?你爬到这些数据都有哪些,就是爬取的数据都包含哪些,而这就是啊,由它来定义的数据结构地方好item之后,接下来有一个啥呢?叫middle where,那middle where一般情况下它叫啥呢?它叫做中间件。
07:11
中间件一般用来干啥呢?假如说我们未来要实现的一个代理机制。哎,就在中间件里边去写啊,还有一个叫pipeline啊pipelines pipelines是啥呢?我们把它叫做管道啊管道对还是那句话啊,大家有点印象就行,暂时没有必要去被他管道它是干啥呢?它是用来处理数据,然后。啊,用来处理下载的数据对吧,下载的数据的啊,用来处理下载数据,你不用去管别的,先看一下,最后还有一个啥呢,就是sing史。Setting,那它是叫配置文件啊,配置文件一般的robots协议,还什么UA啊,都在这定义啊定义的,哎,这就是他们的一个项目的一个结构,大家注意啊,这里边暂时最为重要的就是谁,就是它我们自己定义的叫啥呀,叫做自定义的。
08:26
自自定义的啥爬重文件啊,这个是爬虫,也就是说框架的啥核心功能文件。诶,大家要知道这几个啊,核心功能文件,这是整个的SC项目的一个目录,而在这里边注意带星号的,它是最为重要的啊,最为重要的OK,同学们啊,这个暂时有印象型,我们现在只聊它,其他的先不聊啊,就只聊它。好,那大家现在知道了,这个里边啊,它执行了,你执行完起始UR,它是不是执行了,那他执行完之后呢,你执行完这个文件,我是不是得要里边的数据啊,所以说记一个我们要讲的就是啥content,等于记住啊,前面都不写了,直接要response response.test来我们来print一下,但是呢,由于啊,我们可能看的不太清楚,我在这加个等号,它下边就是它了啊来我们来运行一下它啊,有同学老师我直接右键运行,那不行啊,不行,你运行SCB文件必须是SCCRA啊,没有其他的方式,走我们看一下这个test是干啥的。
09:43
啊test诶好像这个前端开发什么什么搜索是不是都有了呀呀,这东西很多呀,他如果一篇显示不下,那可就有点有点开玩笑了,是吧?来往下走走走,大家看是不是显示的是啥呀,他的页面源码啊各位前面有B吗?
10:04
是不是没有B,所以说在这里边我们注意啊,这个response.test它是干啥的呀?啊是干啥的呀,它是不是响应的,获取的是响应的字符串啊对不对,哎,这第一个,那紧接着还有别的吗。来注释一下,这是字符串,还有看看啊,说content等于,那咱们同学肯定知道啊,既然有字符串,那必然会有啥。是不是二进制啊,二进制这里边叫啥?千万不要给我写成content啊,在这里边它叫body了啊,不叫这content了,好OK,同学们来,我再来运行一下。走。嗯。好多好多好多盖对吧,那么这些盖我们看往上翻滑滑滑往下滑,一直往上滑。
11:04
有点有点迷糊吧,东西是不是有点多,哎,所以在这里边再往上滑滑滑滑滑滑滑滑滑划滑。照相划过头来,来上滑。好像东西很多呀,但是好像是不是我们划划过头了。走走。走哎,这应该是上一个啊,我们再往下点往下滑滑滑滑滑滑滑,这个分的不是特别清楚啊,因为东西太多了。哎,在这了,好,大家看前面是不是多了个B,所以说这个包低它返回的是什么啊,返回的是啥?是不是二进制数据啊啊,二进制数据记住了,我把这个再也拿过来,然后在这写上是啥?获取的是二进制数据没问题吧?喂,当然这里边还有很多比较帅的一个东西啊D,假如有的同学说老师啊,那这我就会了,你不用讲了,为啥呀,因为你这个东西你都获取完了,我直接剩下的不就解析就行了吗?你导入一下什么叉pass,导入一下什么其他的东西,这个这个BS不就可以了吗?No nono,同学们,你那玩意儿写完写之后,你的框架存在的意义不又差点意思了吗?注意同学们不需要导入什么叉pass啊,什么BS啥都不需要,我们直接干啥?看response,点叉pass。
12:32
我写完了。你这里边写擦帕子语法就行了。就结束了,同学们就这么easy z就这么简单,那我们来看一下可不可以啊,我在这呢,给它定位一下子吧,我要一下啥呢?我要一下全部这个小按钮,看有没有哈,全部全部叫SPA这个ID吧,就filter filter下边SPA,我们现在啊使用叉pass这小插件,我们来试一下来杠杠杠杠div。
13:01
艾特ID等于啥?等于叫filter filter它就一个,它下边的直接杠杠呗,全部有六个,六个的话我们来看一下啊,这个class是不是有个他呀,有高亮啊是吧,那我给你来一个吧,艾特class等于。那这个没有,这个前面咋的,他是后期生成的,我们就不用管他了,呃,这个曼我取个零吧。这个零也不行,嗯,那我看一眼啊,同学们在这里边找,它下边有个A,还有个class等于types是吧,我们还是变懒是吧,按层结构一级一级写,它下边有一个div div的艾,Class等于的是types对吧?那它下边还有一个AA,下边有个SPA啊,SPA有两个。它下边啊,还有个个人是吧,还有个人,那么我们先干啥呀,先要到SPA,再要到它的里边的第一个可以吧,各位好,那我们来这样吧,直接这么写,那这个叉pass,它的语法返回的是不是一个列表,那SPA_list等于它。
14:19
对吧,分为列表,而这个列表中我们是不是要的是第一个呀,对吧,各位哎,要第一个,那我们直接那这这不能叫SPA了啊,不能叫SPA list了,直接叫span,这不叫一个了吗?那么我们在这来print span看可不可以啊来我们现在在前边再给他来一个横线,然后来好好的观察一下它走走。我们看拿到了,各位是不是拿到了里边的值了对吧,各位,哎,拿到了这个谁呀?Span是不是全部,你说老师你这里边,那你应该咋拿取里边的内容呢?同学们啊,接下来我们就可以拿下叫啥呢?叫做1STRICT下线first这一一个是这个就可以了,我们看一下结果,这一会再给大家讲哈,走。
15:13
我们看拿没拿到这SPA呢,拿没拿到完全没有问题呀,是不是,那这里边你再可以去再去写呗,所以刚才注意同学们啊,这里边有一个叫response点。叉pass可以直接使用叉方法来干啥?解析response中的内容没有任何问题,那接下来啊,有同学老师你刚才写这个一这个的,这个是啥意思啊,大家注意啊,它是在这个里边去提取我们的数据。啊,提取数据,那么别着急,我先给他写上,一会我们再起再爬取一个汽车之家吧,爬取的时候我们再去干啥呢?给大家讲,第一个叫response,点第一颗斯。
16:13
那么这个方法它的作用是提取selector,一会大家看结构啊,Selector对象的date属性值。啊,这是我们下个案例来说,先有点印象,那么接下来response点一这的下划线first,它提取的是啥?大家注意啊,它提取的是select,有一个明显的对比列表啊,记住同学们一个是对象,一个是列表的啥第一个数据,哎,他们有一个本质性区别,一个re呢,提取的是select对象里边的值,这个一个re的first呢,它是提取列表里边的第一个数据啊这几个大家有印象,我们下一个案例来讲讲他,那么这个案例之中,一是让大家知道一下我们五八同城怎么去做它的访问,还有一个这个项目的结构,要求同学们有一个现在简单的一个掌握这几个方法,记住了我们常用的试探桑。
17:28
你都可以直接提取了,那你这页面的源码有啥用啊,是不是一点用没有啊同学们对吧?诶要注意啊,好同学们,以上呢,就是我们五八同城的一个爬曲,OK,我把视频暂停一下。
我来说两句