资源预览内容
第1页 / 共74页
第2页 / 共74页
第3页 / 共74页
第4页 / 共74页
第5页 / 共74页
第6页 / 共74页
第7页 / 共74页
第8页 / 共74页
第9页 / 共74页
第10页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
前言vba网抓常用方法:1、Xm1.httPwinhttp法:用m1.httpwinhttp模拟向服务器发送请求,接收服务器返回的数据。优点:效率高,基本无兼容性问题。缺点:需要借助如fidd1.er的工具来模拟http请求。2、IEwebbrowseri:创建IE控件或WebbroWSer控件,结合Hm1.fi1.e对象的方法和属性,模拟浏览器操作,获取浏览器页面的数据。优点:这个方法可以模拟大部分的浏览器操作。所见即所得,浏览器能看到的数据就能用代码获取。缺点:各种弹窗相当烦人,兼容性也确实是个很伤脑筋的问题。上传文件在IE里根本无法实现。(有实现方法?请一定告诉我)3、QUeryTabIeS法:因为它是exce1.自带,所以勉强也算是一种方法。其实此法和Xm1.httP类似,也是GET或PoST方式发送请求,然后得到服务器的response返回到单元格内。优点:exce1.自带,可以通过录制宏得到代码,处理tab1.e很方便。代码简短,适合快速获取一些存在于源代码的tab1.e里的数据。缺点:无法模拟referer等发包头(如果你有在QT中模拟referer的方法,请一定告诉我)本文主要讲的是第一种方法1、前期准备工作1.Ifidd1.er网抓工具的安装、设置、使用设置:1、菜单栏:RU1.eS,勾选“Removea1.1.Encodings”(解密所有加密数据)(很重要,否则之后会出现查找不到特征数据的情形)2、菜单栏:RUe勾选HideImageReqUeStS”(降藏图片包)、HideCONNECTS”(隐藏CONNEeTS包)FFidd1.erebDebugger3、菜单栏:TOOIS-FidderOPtiOnS-HTTPS,勾选“CaPUreHTTPSCONNECTs、DecryptHTTPStrafficIgnoreservercertificateerrorso(获取https包并忽略信任错误),/Fidd1.ercbDebueeerFi1.eEdit Rul: I ;4 RePIay XToo1.sVifH1.p 册 Fiddler GoEdgJidd1.erOptionsVinIMZTOptions.C1.erIfinI皿 Cache CtrBShiftlClr YinIMTT CookiesTixt1.fizardCopreSessioxisCtr1.4ECtrl”RsetScriptSandboxVitwIE CtchtIPSIS 1.llsession Any Process 柏 Find 显 SaVe -: Bxovse - Clear Cache/AutoResporxjef M Composef 向 FidcfefSaiPt Fi1.ers . Iil Log . = Timee使用:fidd1.er抓包有点类似exce1.里的录制宏。抓包步骤如下:1、为确保fidd1.er抓到完整的数据包,抓包前请手动清除浏览器cookie、缓存及历史记录。不要用fidd1.er上的按钮“C1.earCache,这个按钮只能清除IE浏览器的缓存。2、打开fidd1.er,然后打开浏览器,输入网址,在网页里做所需操作。操作完毕后,进入fidd1.er,fidd1.er的左半边框框内的数据就是抓到的包。为了fidd1.er不受之后网页操作的影响,可以点击左下方的Capturing按钮停止fidd1.er抓包。fidd1.er抓包界面简单解析:1、左边的是session框,选择该框任意一条数据,右边菜单选择Inspectors”后出现上下两个框:上边是ReqUeS3包含所有的发送请求;下方是ReSPonse,包含所有服务器响应请求后返回的内容。口回区R.Protoco1.Host304HIlPdub.excehome.304HTTPdub.excehome.304HTTPdub.excehome.304HTTPdub.excehome.2HTTPcb.baidu.com304HTTPdup.badustabc.304HTTPcbjs.baidu.com304HTTPdub.excehome.304HTTPdub.excehome.304HTTPdub.excehome.304HTTPtcss.qq.m200HTTPdub.excehome.200HTTPdub.excehome.304HTTPdub.excehome.302HTTPbq.soso.m舱专司On檀黑:黑HTTPpb.sogou.mHTTPc.cnzz.comHTTPhm.baidu.comHTTPdub.excehome.HTTPpos.badu.mHTTPdup.baidsttic.HTTPdup.badustabc.HTTPwidget.webo.comHTTPwidget.weibo.comHTTPpos.baidu.mHTTPpos.baidu.mHTTPecfick.baidu.comHTTPdub.excehome.KditBu1.es tools Yiev HelP 册 Fiddler I二 GoZd Go Strew-6789n2122262728293031323438394042444548495051s2545556575Caotunna - A1. ProcessesHeXUcTextvtew Sntaxw , WebForms HeAtew Auth Coes1.RwJSON , XMLGET httpcl ub. excel home. net/home. php?mod=spacec&ac=pm&op=CheCkneWPmrand= Accept: *Referer: http:clyb.excelhoReqUeSt 框Cl. IL,ViewinNotcoad ,ansTner Hers Svntaxview TmageVfew , WxVfe* WVte/ , AWr , TaemgRart- JSON XMCdowes ,HTTP/1.1 200 OKContent-Type: text/html; charset=gbkVary: Accept-EncodingServer: Microsoft-IIS/7. SX-Powered-By: PHP/5.3.27Set-Cookie: 5WOj_b676_lastact=1413864033%09home.php%09spacecp; expires=Wed, Set-Cookie: 5wOj_b676_connect_is_bind=O; expires=wed, 21-0ct-2015 04:00:33 Q Set-Cookie: 5WOj_b676_stats_qc_reg=deleted; expires=Thu, 01-Jan-1970 00:00:0 Set-Cookie: 5W0j_b676_cloudstatost=deleted; exires=hu, 01-Jan-1970 00:00:1 Set-Cookie: 5W0j_b676_checkpm=l; expires=Tue. 21-0ct-2014 04:01:03 GMT; path Date: Tue, 21 Oct 2014 04:00:33 GMTContent-Length: 0ResponseYEIrYegJI Keep:A1.l sessions AnydbStotst / InspectorsProcess丹 Find 尽 SaVe ; .) Browse 欲CIeaX CacheAUtoReSPOnder M Composer J M RddkrSopt i 口 Fiters 3 1.og m Trndrc1/35httD:/dub.excehome.net/home.Dho?mod=SDacecD&ac=pm&op=checknevDm8aand= 14138640322、查找数据:抓到包后,SeSSion框里的数据太多,如何找到我们需要的呢?a在fidd1.er里按ctrl+F,搜索所需某个比较有特征的数据,搜到后点击该session*Request框和Response 框都选择“Raw 菜单。搜索框内可以选择搜索范围。FindSeSSionSHnd:OptionsSearch:Dcamine:口Match caseRequestsand responsesHeaders and bodies口Regu1.ar pression口Search b,inaries口 D,ecode compressed content口 Search o,n1.y selected sessions口 Select rnatches 回 IJnmark old resultsResult Highlight: Yellow _, vCance1.b、在Response框下方的空白长条框里,输入之前搜索的那个特征数据,按回车,确认其是否存在于该ReSPonSe内,如果存在,再查看上下文,确认是否是所需的数据页面。Fidd1.erebDebugger这步很重要,如果数据页面确认错了,接下来就都是做无用功了。3、数据页面确认后,我们写代码要模拟的就是ReqUeSt框中的数据。小贴士:特征字符尽量不要选择中文,中文可能会有转码;也尽量不要选择带格式的文本。带格式的文本通常含有Hm1.代码。这些都有可能出现搜索不到数据的情形。1.2常用代码及自定义函数1.2.1 网抓主体代码1. SubMain()2. DimStrTextAsString3. WithCreate0bject(MSXM1.2.XM1.HP),CreateObject(,WinHttp.WinHttpRequest.5.1)4. .OpenPOST,m,Fa1.se5. .SetRequestHeaderC
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号