zoukankan      html  css  js  c++  java
  • jmeter学习之网页爬虫

    学习网站:https://www.cnblogs.com/Zfc-Cjk/p/9937269.html

    学习的jmx文件:殆知阁优化.jmx  什么网站,都没听过

    遇到问题:乱码问题,解决方法:https://www.cnblogs.com/shishibuwan/p/11307194.html

    学习后总结思路:简而言之,对网页提交一个请求,然后把返回的所有值提取出来,利用ForEach控制器去实现遍历;

    获取网址,确定网上哪些字段需要抓取;

    利用foreach进行循环遍历;

    最后输出到本地文件;

    1、网页获取

     2、XPath Extractor

    用xpath从前一个请求中取。这种形式比较适合于返回为xml片段的情况。在需要获得数据的请求上右击添加一个后置处理器-->xPath Extractor。

    Xpath一般用于返回xml用得多。

     

     Use Tidy:当需要处理的页面是HTML格式时,必须选中该选项,当需要处理的页面是XML或XHTML格式(例如,RSS返回)时,取消选中该选项。

    Reference Name:存放提取出的值的参数。

     XPath Query:用于提取值的XPath表达式。

     Default Value:参数的默认值。

    匹配数字:0表示取第一个,1表示取第2个,-1表示取全部

    XPath Extractor与正则表达式使用场景区别:

    如果需要提取的文本是页面上某元素的属性值,建议使用XPath Extractor;

    而如果需要提取的文本在页面上的位置不固定,或者不是元素的属性,建议使用正则表达式提取器。

    3、XPath Extractor基本语法

    //*[@class,'A ']/@href 从根目录下定位所有class=A的href

    //*[@class,'A ']  从根目录下定位所有class=A标签内的文本

    //*[contains(@class,'A ')]  从根目录下@class值中包含A的节点

    substring-before(.//*[@class='A']/text(),'0') 返回根目录下[@class='A']/text()中第一个'0'前面的部分,如果不存在'0',则返回空值

    substring-after(.//*[@class='A']/text(),'0') 返回根目录下[@class='A']/text()中第一个'0'后面的部分,如果不存在'0',则返回空值

     详细点的请查看:

    https://www.blazemeter.com/blog/using-xpath-extractor-jmeter-0/

    https://www.blazemeter.com/blog/using-xpath-extractor-jmeter-0/

    .//a[@class='linkto']/@href 意思就是通过a>class>href这三层标签进行逐级检索,找到class=linkto标签下的所有href,进行匹配

    //a[@href]/text()提取的结果

    4、For each 控制器

    输入前缀是title1, 左下角勾选“Add _ before number”,与输入前缀拼接后为“title1_”。start index for loop为16,end index for loop为17,是“左开右闭”,即(16,17]。ForEach控制器会依次取title1_17,title1_18,并赋值给 financial_type,这里就取title1_17。
    如下图从title1_17开始:

     5、获取二级标题

     

     

     

     

    import java.io.File;  
    import java.io.FileNotFoundException;  
    import java.io.FileWriter;  
    import java.io.IOException;  
    import java.io.RandomAccessFile;  
      
      
                StringBuffer fileBuf=new StringBuffer();  
                String filePar = "D:\目录\目录_${title1}\2级目录_${title2}";
                File myPath = new File( filePar );  
                if ( !myPath.exists()){
                    myPath.mkdirs();  
                    System.out.println("创建文件夹路径为:"+ filePar);  
                }  
               
                String filename = "列表_${title2}.txt";
                try {  
                    FileWriter fw = new FileWriter(filePar + "\" + filename,true);
                  
                    String originalLine ="${text}";
                    System.out.println("*** "+ originalLine);  
                    fw.write(originalLine);  
                    fw.close();  
                } catch (IOException e) {  
     
                    e.printStackTrace();  
                }  
  • 相关阅读:
    安装wampserver时提示丢失MSVCR110.dll(在windows server上可用)
    前端开发必备!Emmet使用手册
    Markdown 新手指南
    封装系统(以封装Windows 7为例)
    简体中国版文档的Markdown语法
    sublime text 3 快捷键大全以及配置编译环境
    windows下的命令行工具babun
    Android屏幕适配全攻略(最权威的官方适配指导)
    JMETER第五节课jenkis集成常态化压测的实战?主从压力机实战??
    性能测试5--Jmeter命令行与以及普罗米修斯的原理
  • 原文地址:https://www.cnblogs.com/shishibuwan/p/11330301.html
Copyright © 2011-2022 走看看