ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: wcymiss

[原创] 不懂html也来学网抓(xmlhttp/winhttp+fiddler)

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-30 10:23 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
coby001 发表于 2014-10-30 09:33
URL 里不能识别 多字节字符,必须用 单字节 来重新表示 多字节。

.send "csrf_test_name=f52e9726d36d24aea77906fdbf0301f1&show_pwd=022440&dosubmit=%E6%8F%90%E4%BA%A4"
        .send "csrf_test_name=f52e9726d36d24aea77906fdbf0301f1&show_pwd=" & [a1] & "dosubmit=%E6%8F%90%E4%BA%A4"

老师 [a1]的值是022440   但是l两个返回的数据不一样  这样的引用是不是错的??

TA的精华主题

TA的得分主题

发表于 2014-10-30 10:40 | 显示全部楼层
dim postData$

postData="csrf_test_name=f52e9726d36d24aea77906fdbf0301f1&show_pwd=" & [a1] & "dosubmit=%E6%8F%90%E4%BA%A4"
debug.print postData
.send postData

TA的精华主题

TA的得分主题

发表于 2014-10-30 10:42 | 显示全部楼层
.send "csrf_test_name=f52e9726d36d24aea77906fdbf0301f1&show_pwd=" & [a1] & "&dosubmit=%E6%8F%90%E4%BA%A4"

TA的精华主题

TA的得分主题

发表于 2014-10-30 14:48 | 显示全部楼层
wcymiss 发表于 2014-10-23 16:12
缓存的困扰
用xmlhttp对象GET数据时,会优先从缓存中调取。

"为了验证一段代码能否真正获取到数据,除了清除浏览器的Cookie缓存种种,还必须关闭excel再重新打开excel后再运行代码。这时的运行结果才是代码的真正结果。
"
吴老师,看到这句话,让我想起昨天折腾我一天的60楼那个找动态参数的例子,一直无法获取数据,而您说您那里没有问题,结果折腾来折腾去,最后因意外故障excel自动重启,结果再执行,数据成功获取。今天上午,再试这个例子又出现无法获取,我就如法炮制,关了excel然后重新打开,呵呵,又获取成功。看来真可能是缓存的问题。

TA的精华主题

TA的得分主题

发表于 2014-10-30 15:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 coby001 于 2014-10-30 15:43 编辑
renahu 发表于 2014-10-30 14:48
"为了验证一段代码能否真正获取到数据,除了清除浏览器的Cookie缓存种种,还必须关闭excel再重新打开exce ...

在URL后加一段随机数即可~
URL & "&t=" & int(rnd()*10^8)

TA的精华主题

TA的得分主题

发表于 2014-10-30 17:02 | 显示全部楼层
coby001 发表于 2014-10-30 15:40
在URL后加一段随机数即可~
URL & "&t=" & int(rnd()*10^8)

是60楼那个找动态参数的例子,在这里加吗?

strUrl = "http://app.abchina.com/rateinfo/RateHistorySearch.aspx" & "&t=" & int(rnd()*10^8)
可是数据找不到了
是不是在 send 后面加,比如第二个open "POST"
        .send "__VIEWSTATE=" & VIEWSTATE _
            & "&__EVENTVALIDATION=" & EVENTVALIDATION _
            & "&ddr1=" & encodeURI(strDdr1) _
            & "&datepicker1=" & strDatepicker1 _
            & "&datepicker2=" & strDatepicker2 _
            & "&btnSearch=" & encodeURI("搜索") _
'           & "&t=" & Int(Rnd() * 10 ^ 8)
第三个 open "POST"  也相应的加上

是这个意思吗?

TA的精华主题

TA的得分主题

发表于 2014-10-30 17:22 | 显示全部楼层
wcymiss 发表于 2014-10-23 14:50
其实用fiddler网抓的方法写到这里基本可以告一段落了,剩下的就是多多操作,多写代码,多攒经验。有时候某个 ...

感谢吴大师的如此悉心教导!
还想请您指导这个问题在打开的网页自动填表的问题将原帖http://club.excelhome.net/thread-1150374-1-1.html附件上传在此,谢谢!

只考虑自动填表问题、不用理会识别码,再次感谢!

如何在打开的网页填表.rar

85.73 KB, 下载次数: 78

点评

填写表单提交的过程就是个POST过程。操作一次并抓包。搜索表单的某个字符串寻找POST页面。模仿该页面的request内容编写代码。  发表于 2014-10-30 21:33

TA的精华主题

TA的得分主题

发表于 2014-10-30 17:40 | 显示全部楼层
wcymiss 发表于 2014-10-23 16:12
缓存的困扰
用xmlhttp对象GET数据时,会优先从缓存中调取。

吴老师,关于91楼的缓存问题,我怎么加上这句
.Open "GET", "http://www.1396me.com/shishicai/" & Rnd(), False
提示:下标越界 ?

点评

.Open "GET", "http://www.1396me.com/shishicai/?=" & Rnd(), False  发表于 2014-10-30 18:20

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-10-30 18:49 | 显示全部楼层
wcymiss 发表于 2014-10-21 15:20
新手作业:
网站:http://www.pinble.com/Lottery.htm
操作:点击“各省体彩”---“江苏七星彩”,获取江 ...

吴老师,17楼的体彩例子,这里是先要把UTF-8编码转换成J3编码是吗?J3编码是不是就是我们常见的能看懂的编码?除了这里的UTF-8编码,还有什么常见的需要转换成J3编码的?

点评

什么是J3编码?  发表于 2014-10-30 20:18

TA的精华主题

TA的得分主题

发表于 2014-10-30 19:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 renahu 于 2014-10-30 19:34 编辑
onlycxb 发表于 2014-10-23 16:44
新手作业


老师您好,您写的江苏七星彩中这句是什么意思呀?

Pstr = "<tr style='backgro%und-color: White; border-color: #B6CBE8;'>"

嗨,看下面明白了,用来分割用的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 16:55 , Processed in 0.037658 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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