本人前端狗一名,也想追随人工智能的道路,于是在java、php、python的选择中徘徊,因为身边java和php的coder太多了,于是乎选择了python,学习python第二天发文;
因为我是前端,学习python基本算是毫无基础,习惯性搂一遍runoob,笼统过度,只是有印象,方便后期查找,基本的了解了之后,开始爬!!
python比较好的一点就是有非常强大且数量够多的库,所以大多数时候你只需要会用轮子而不需要造轮子;
我今天选择爬的网站是掘金:https://juejin.im,首页的最新随机文章
第一步:查看页面的渲染方式:
首先要确定你要爬的网站是如何进行前端渲染的,我用的方式比较简单,用chrome打开目标网站,在页面中右键-》查看网页源代码,如果从源代码中能看到网站上所有的数据,就代表你可以使用传统的爬虫方式,反之则需要使用ajax的方式爬,如下图
掘金Ajax方式渲染页面,查看网页源代码时,只能看到固定的html和一堆东西,这类网站需要使用ajax的方式爬 这是简书的源代码,传统方式爬即可PS:安全性的问题,我不太情书,但是从我现在掌握的技术来看,对于ajax方式的爬虫技术稍稍复杂一点点
第二步:查找数据接口
已经确认目标网站的渲染方式,那么现在需要找到传输数据的接口,通常这类接口是都会暴露的,因为安全性问题,访问接口的时候可能会有header的验证,因为我们只是查看数据,并不存在ddos攻击或者其他的不法行为,所以,用自己浏览器真实的参数就可以
先来找接口,chrome打开目标网站,F12->network->刷新页面,不出意外的话你会看到如下界面
chrome开发者工具然后选择XHR,为什么选xhr不做过多的解析google、百度即可,这是ajax的一种方法,选择xhr后数据量会小很多
变这样了这里发现的基本都是需要请求返回的数据接口,我的习惯是先看大的,为什么呢(因为我技术LOW啊,哈哈),不行就每个都点一次,总会发现的,哈哈
选择一个之后,看到的信息因为我们要看数据所以这里选择Preview,如图
貌似有数据啊因为掘金是滚动加载,所以我们继续向下滚动,对比一下每次加载数据的变化(这里为爬多数据准备,因为掘金首页每次只加载10条数据)
向下滚动页面后,我们发下有新数据进来因为我对比过,就不发图了,每次请求的接口数据都一样,没有区别,就代表这,用户每次向下滑动页面请求的都是这个接口,但是返回的数据是不同的,这个应该是掘金后台进行的处理,咱们不需要管,换言之如果要获得更多的数据,多请求几次这个接口就可以了(切记是掘金首页的数据,因为其他栏目的方式和首页不一样)
接下来我们要查看具体的接口是什么?所需参数都有啥?
选择Headers标签
注意红框这里的数据大多数同学应该能看明白
Request_url:请求的接口地址,这里是带参数的
Request Method:请求方式
Host:Host地址
Referer:触发接口的路由地址
User-Agent:浏览器信息
Query String Parameters :请求的数据
sudi,ab, src 在Url中可以看到这些数据
以上就是我们需要的数据,数据请求的接口地址为:https://recommender-api-ms.juejin.im/v1/get_recommended_entry? ,现在我们基本分析完了,可以写代码啦
第三步:在python中实现功能
直接上代码
新手写的LOW到此,爬完结束!
网友评论