美文网首页每天写1000字每天写500字
Python简易爬虫 || 我用requests,30行的代码,

Python简易爬虫 || 我用requests,30行的代码,

作者: 暮光微晓破倾城 | 来源:发表于2020-02-14 20:25 被阅读0次

还记得在2019年4月份,在北京五道口中关村智造大街上班,在会议室前面的,是一位来自清华的高材生。

在坐的,除了老板和我之外,全部都是程序猿,这位年纪大概30多岁的大哥,使用Python的scrayp框架向大家展示如何爬取煎蛋网的男生福利图片(嘿嘿你懂得)。

当时,我也只是一位凭借着简书作者以及百度经验大神作者的身份,刚入职公司的一位内容运营人员,不过,当看到这位高材生瞬间能够将海量的图片下载到自己的本地,转瞬间变换成自己的内容,作者表示有点瞬间看呆了。

于是,在周末的时候,在家自己研究起Python来,刚开始没有方向,只好上网自己查,下载了一个pyjupyter的开发环境,不过到最后,也没有整明白究竟是怎么一回事。

后来,就自己去网易云课堂上自己研究,关注Python的公众号,正好看见一位老师出版的Python疯狂讲义,顺带还送一本书,索性就99元买下来挨个听了起来。

(郑重声明,这里不是在打广告哈)

刚开始也没有个方向,就自己瞎听,后来也没有坚持下来,隔了3个月,又重新捡了起来,前段时间刚把基础课程看完,现在结合这网络上的一些爬虫视频课程,也能够简单的编写一些简单的代码,至少,老师将的课程,在原理上基本上已经算是搞明白是怎么一回事了。

好了,不多说了,先附上一张爬取的视频的成果。

视频成果

视频爬取的来源是:网页端的梨视频。

下面是代码:

在开发过程当中,会有一种情况,就是我们在爬取视频的时候,仅仅能够爬取一定数量的视频,因为其中还有一个叫做加载的过程。

比如说,我们在浏览网页的时候,滚动到屏幕下方,就会出现一个加载的页面选项,如下图所示:其实,这也是属于反爬的一种有效方式。

加载更多

这个时候,需要我们打开Network,然后在去页面当中,滚动一下,就可以看到,这个页面就会自动出现一些网页信息。

我们打开其中的xhr的数据类型,就可以看到这类数据的一些相关信息。

而xhr信息类型中的Requests URL的这部分信息,就是需要我们去研究的一部分信息,根据start后面的数据,我们就可以找到,这个数据每次都会加载12项,因此,我们就可以针对这部分内容,创建一个循环,然后将循环参数返回到刚开始的def download()当中。

# https://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=6&start=48&mrd=0.7802206314750337&filterIds=1651425,1651320,1651254,1650430,1650354,1650305,1649495,1649924,1649831,1649825,1644004,1646937,1649633,1649498,1649517

# https://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=6&start=36&mrd=0.06893491305473942&filterIds=1651425,1651320,1651254,1633203,1632086,1632271,1650709,1650742,1649275,1650586,1650590,1650582,1650556,1631460,1631463

以上 是xhr类型中,Request URL部分的分析过程,请注意标黑色的数据部分,下面是针对这一部分的链接做的循环,我们只下载到前48的视频,所以,我们在下面写到条件为48,当然了,如果想要下载更多,也可以将n的值写的更大些。

def downloadmore():

n =12

    while True:

if n >48:

return

        url ="https://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=6&start=%d"%n

n = n+12

        download(url)

downloadmore()

好了,以上就是本次爬虫的视频代码分享啦。

2020年2月14日

北京市通州区北运河西京贸中心

相关文章

网友评论

    本文标题:Python简易爬虫 || 我用requests,30行的代码,

    本文链接:https://www.haomeiwen.com/subject/ixijfhtx.html