Jmeter(三十五)_精确实现网页爬虫

meter实现了一个网站文章的爬虫,可以把所有文章分类保存到本地文件中,并以文章标题命名

它原理就是对网页提交一个请求,然后把返回的所有值提取出来,利用ForEach控制器去实现遍历。下面来介绍一下如何操作。

首先我们需要对网页提交一个请求。我们对一个站点发起一个请求,观察一下返回值可以发现中间有很多中文title,这些title都是href标签,他们作为超链接可以跳转到正文

我们用xpath提取器获取这些href的title,并且用-1提取全部

用foreach控制器遍历提取的title,并传参

通过beanshell脚本将遍历提取的title保存到本地文件,文件保存为title.csv

用matchNr函数获取返回的title总数,作为后续csv提取器的循环次数

在循环控制器下,用csv提取器从之前保存到本地的title.csv中循环读取title,并作为参数传递到后续接口的url中

循环控制器下,通过csv传参,循环触发url

循环触发url之后,用xpath表达式从url中提取出文本,传递变量为text

循环控制器下,通过foreach控制器遍历之前的提取的text,保存到本地文件。文件名用遍历获取的title依次命名创建

注:难点在于,需要按照超链接的标题创建本地文件,并把超链接之后的文本正确保存到文件之中

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT可乐

Linux系列教程(二十二)——Linux的bash变量

  上篇博客我们介绍了bash的一些基本功能,这是我们平时操作最频繁的。本篇博客我们介绍bash的变量,为后面编写shell脚本做铺垫。 1、什么是变量   变...

21610
来自专栏企鹅号快讯

Python模块

Python模块 可以将代码量较大的程序分割成多个有组织的、彼此独立但又能相互交互的代码片段,这些自我包含的有组织的代码段就是模块 模块在物理形式上表现为以.p...

2507
来自专栏Python小屋

Python多线程编程中daemon属性的作用

在脚本运行过程中有一个主线程,若在主线程中创建了子线程,当主线程结束时根据子线程daemon属性值的不同可能会发生下面的两种情况之一: 如果某个子线程的daem...

3415
来自专栏瓜大三哥

matlab GUI基础3

低级文件I/O 1.文件读取 fopen:文件打开 fclose:文件关闭 fread:二进制数据的读取 fwrite:二进制文件写入 fgetl:逐行读取 f...

2435
来自专栏十月梦想

Express框架之中间件(一)

如果我的的get、post回调函数中,没有next参数,那么就匹配上第一个路由,就不会往下匹配了。

822
来自专栏mwangblog

Linux中的管道命令(一)

1814
来自专栏程序员互动联盟

【专业技术】C语言EOF如何使用?

存在问题: 又一次遇到有人问EOF的用法,到底如何来使用那? 解决方案: 这里有一篇文章写的不错,希望对EOF没有理解的同学能有所帮助。 我学习C语言的时候,遇...

3908
来自专栏闵开慧

mapreduce主程序如何传递变量到map或者reduce函数中使用

    一般我们写的mapreduce主程序放在客户端机器上,执行任务时是在集群机器上,所以要将变量从主程序传递到我们自己写的map或者reduce函数中就不能...

4195
来自专栏瓜大三哥

matlab GUI基础3

低级文件I/O 1.文件读取 fopen:文件打开 fclose:文件关闭 fread:二进制数据的读取 fwrite:二进制文件写入 fgetl:逐行读取 f...

20910
来自专栏Redis

Redis数据类型之hashes类型

2、hsetnx 设置hash field为指定值,如果key不存在,则先创建。如果field已经存在,返回0,nx是not exist的意思。

1170

扫码关注云+社区

领取腾讯云代金券