写爬虫,要懂代码吗?No!!!

写爬虫,要懂代码吗?No!!!

说到爬虫,你想到了什么?

是不是想着,这是开发人员写的代码,生成一个软件,然后执行,就去访问某些网站,从网站上获取特定的信息,然后把这些信息存储下来。

如果你是这么想的,是不是觉得‘爬虫’很高大上,自己不懂得写代码,想从网站上搞点数据下来,就会很难呢?

那今天,我就教你一招,不写代码,速度、效率比写代码还高的办法,认真学习下吧!

Snipaste20200911pc01.png

Snipaste20200911pc02.png

通过这个抓包,我们发现有如图中的接口,返回了我们想要的信息。

其实,对于测试人员,我们有很多现成的工具。大家平时做接口测试,都用什么工具?——Jmeter ! 是不是,相信很多同学都会用,今天我们的爬虫,就用 jmeter 来实现。

jmeter 写 http 协议的接口请求,大家会吗?

不会! 不会的自己搬上小板凳,去找柠檬班的老师。

Snipaste20200911pc03.png

调通接口后,我们看下响应结果是 JSON,就要分析 JSON 数据格式,分析出自己想要爬取下来的信息的 key

接下来,提取 JSON 中对应 key 的值

Snipaste20200911pc04.png

这个 JSON 提取器中使用了一些特殊用法,如果大家看不懂,可以咨询柠檬班老师,也可以在柠檬班的测试派网站中搜索文章学习。

前面大家看到,一个页面有非常多个课程信息,那通过这个 JSON 提取器,获取的课程 id、标题、名称、起始时间、状态肯定也会返回多个值。要想把这些多值,固化下来,首先,我们肯定会想到要用循环,既然要固化下来,那肯定就会想到要写入文件,所以我们就会采用循环相关的控制器

pc01.gif

固化到文件,这一步,估计很多同学都会头痛!

因为 jmeter 本身并没有提供运行过程中的参数值保存到文件的功能,要想保存这些动态参数值,可能需要写代码,所以很多不懂代码的,就头痛了。

但是,

我们采用了数据库嫁接法

pc02.gif

在 setup 线程组中,添加数据库配置,采用 SQLite 数据库,这个数据库不需要安装,直接就可以用,然后,再创建一张表,用于后续存储我们爬取的信息,然后,就是在循环控制器中,把从接口中提取出来的数据,循环的写入数据库表中,即可。

当然,这其中,还包括数据的清洗!

此时,你要爬取的数据,已经写到数据库中了,算不算已经固化了你想要的信息呢?

如果,你觉得这还不算,你还可以添加一个 tearDown 线程组,写一个查询脚本,查询库中所有数据,再,保存响应结果到文件

Snipaste20200911pc05.png

此时,你可以去你的 jmeter 下面找找,看能不能找到你保存的文件,打开看看。

Snipaste20200911pc06.png

好了,不知不觉中,一个爬虫就完成了,回头想一下,自己有些过一行程序代码吗?

No!!!

脚本源码

回帖
请输入回帖内容 ...