阅读 57

python3爬虫学习笔记

原文链接: www.jianshu.com
掘金随机最新100篇文章的分词

本人前端狗一名,也想追随人工智能的道路,于是在java、php、python的选择中徘徊,因为身边java和php的coder太多了,于是乎选择了python,学习python第二天发文;

因为我是前端,学习python基本算是毫无基础,习惯性搂一遍runoob,笼统过度,只是有印象,方便后期查找,基本的了解了之后,开始爬!!

python比较好的一点就是有非常强大且数量够多的库,所以大多数时候你只需要会用轮子而不需要造轮子;

我今天选择爬的网站是掘金:https://juejin.cn,首页的最新随机文章

第一步:查看页面的渲染方式:

    首先要确定你要爬的网站是如何进行前端渲染的,我用的方式比较简单,用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

到此,爬完结束!

文章分类
人工智能
文章标签