51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4417|回复: 3
打印 上一主题 下一主题

[原创] 写一个js实现的,WEB自动化、数据采集、同大家分享

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2014-6-25 23:36:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
思路:js创建个InternetExplorer.Application对象,将DocumentComplete事件绑到一个function,在这个function里将额外的本地jQuery(jQuery名称在脚本里已全部替换为Nop)加载到Document里。
并将常用的window、document、Script、$(JQuery)导出到脚本里。这样就可以像前端开发一样可以使用jQuery去操作Dom了,也可以用ajax去采集数据了。之前是用vbs写的,最后用js,是因为js可以很好融合到jQuery。


目录里有如下几个文件
│  Test2.js       ---脚本主要在这里面些
│  1.xlsx         ---存放采集到的数据
├─Lib
│      DataLib.js  --- 数据处理,包含几json2csv、json2xml、xml2csv、xml2json等函数
│      ExcelLib.js  --- DataLib扩展,处理Excel
│      IELib.js     ---绑定DocumentComplete,变量导出
│      jquery.alerts.js  ---在脚本运行中提供用户交互
│      nop-1.8.0.js  ---修改名称后的jQuery1.8.0

其中Test2.js就是一个Demo,就是一个采集例子,双击运行或cscript Test2.js运行test2.js,输入打开一个网站,输入提示的验证码,就会对采集的数据录入到Excel中

  1. if(WScript.FullName.substr(WScript.FullName.length-11,11) != 'cscript.exe'){
  2.         WScript.CreateObject("Wscript.Shell").Run('cscript //e:javascript "' + WScript.ScriptFullName + '"');
  3.         WScript.Quit();
  4. }

  5. scriptpath = WScript.ScriptFullName.substring(0,WScript.ScriptFullName.lastIndexOf("\\"));
  6. function include(f){
  7.         var p = "";
  8.         if(f.indexOf(":")!=1) p = scriptpath + "\\Lib\\";
  9.         eval(WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile(p + f).ReadAll());
  10. }

  11. //#################### 以上固定无需修改。########################

  12. var username = "minyihua";
  13. var password = "baggio919871020";

  14. include("IELib.js");
  15. InitWebBower("http://chuanbo.weiboyi.com/");
  16. doLoopEvents(); // 代码执行到此处将进入事件循环,不在向下执行;


  17. // ###############################################################
  18. function loadComplete(URL){

  19.         if(/baidu/.test(URL)){
  20.                 print('百度');
  21.         }else if( PageNo == 10 ){
  22.                 print('第10个页面处理');
  23.         }else if("http://chuanbo.weiboyi.com/" == URL ){
  24.                 $("#tonggao_qd").click();
  25.                 $("#username").attr("value",username);
  26.                 $("#password").attr("value",password);
  27.                 print(window.ss);
  28.                 InputBox("输入验证码:",function(v){
  29.                         if(null != v){
  30.                                 $("#piccode").attr("value",v);
  31.                                 $("#login-submit").click();
  32.                         }
  33.                 });
  34.         }else if("http://chuanbo.weiboyi.com/hwreservation/account" == URL){
  35.                 var tkv = $("#web_csrf_token").val();
  36.                 var n;
  37.                 var url;
  38.                 //include("DataLib.js");
  39.                 include("ExcelLib.js");
  40.                 var rline = 2;
  41.                 DataLib.initExcel('1.xlsx');
  42.                 for (n=0;n<90 ;n++)
  43.                 {
  44.                         url = '/hwreservation/account/list/requirement_id/?web_csrf_token=' + tkv + '&start=' + n*100 + '&limit=100';
  45.                         $.ajaxSetup({async: false});
  46.                         getJson(url,function(data){
  47.                                 DataLib.json2range(data.data.list,['weibo_name','url','followers_count','external_tweet_price','location','audience_gender','hand_tags','professions','reservation_notice','cooperation_index','posts_avgretweet_count','posts_avgcomment_count'],'A'+(n*100+rline) );
  48.                         });       
  49.                         print('采集数据:' + ((n+1)*100) + '条 ... ');
  50.                 }
  51.                 isComplete = true;  //将此全局变量设置为true后将会退出脚本
  52.         }else{
  53.                 //ie.document.Script.execScript("var hhh = {t:5};var backfunc = function(f){f(hhh);}");
  54.                 //window.backfunc(function(v){
  55.                 //        WScript.Echo(v.t);
  56.                 //});
  57.         }

  58. }

复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-10-4 10:34
  • 签到天数: 1208 天

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2014-6-26 10:44:44 | 只看该作者
    高大上
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2014-6-26 10:55:35 | 只看该作者
    使用中发现VBSEDIT可以调试js代码,顿时很爽。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    4#
    发表于 2014-6-26 16:13:20 | 只看该作者
    顶~~~~
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-21 22:01 , Processed in 0.084504 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表