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-11-23 16:39 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
wcymiss 发表于 2014-11-1 17:13
上传文件
同样,上传文件也可以用fiddler抓包。

吴姐,您给我的上传文件代码很成功,太厉害了,不佩服都不行.
另外有几个问题我没想明白,望能释疑:
(1)我抓包文件中boundary明明是4个"-"加上34个字母数字组合,为什么您的代码里面是10和30还是能运行成功?难道和浏览器、winHttp的版本有关系?
(2)您论坛例子中将文件流前后的字符串转为流数据用的是自定义函数StrToUTF8Byte,而我的上传代码中您用的是ConStrv函数,想知道为什么。
(3)另外,文件发送后得到的responsetext是乱码,不知道怎样转过来,因为我可能需要判断邮件发送是否成功(不好意思啊,我看了无数的编码相关知识,对编码还是一头雾水)
谢谢!

TA的精华主题

TA的得分主题

发表于 2014-11-23 19:57 | 显示全部楼层
本帖最后由 caipiaofans 于 2014-11-23 21:13 编辑
caipiaofans 发表于 2014-11-23 10:22
学这个 还真是有难度啊..


感谢老师的耐心回答

改成winhttp后
QQ截图20141123195715.png


换  HTTPFOX抓了一下...

QQ截图20141123211107.png

```

登陆带验证码的 就是扰...



TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-23 20:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
onthetrip 发表于 2014-11-23 16:39
吴姐,您给我的上传文件代码很成功,太厉害了,不佩服都不行.
另外有几个问题我没想明白,望能释疑:
(1)我抓 ...

1、boundary是一串随机字符串,“-”的个数和字母个数内容都可以随机。
2、抓包的内容可以看到汉字是gb2312编码的字符,所以用strconv函数进行编码。
3、用ado.stream进行转码。编码为gb2312。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-23 21:31 | 显示全部楼层
本帖最后由 caipiaofans 于 2014-11-23 21:35 编辑

QQ截图20141123212842.png
这图是登陆页面的......

前面的是另外一个页面的...

换成新的Cookies还是提示 太长时间没登陆 ....
除了那个登陆验证码外
还有几个变化的数字串...估计得像老师举例的 找到那数字串变化关键代码,

说白了就是
功底太差....

没法子了...


最后
还是感谢老师的 多次回答....




TA的精华主题

TA的得分主题

发表于 2014-11-24 08:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wcymiss 发表于 2014-10-21 12:47
Fiddler抓包并确认数据页面一例:

网站:http://www.cffex.com.cn/fzjy/tjsj/pztj/

吴老师,我发现异步抓取时,一旦抓取中途断网后(我故意在屏幕右下角任务栏进行断网测试),大部分情况下,readystate=4,status=12007(服务器名称无法被解析),这时如果把网重新连上,可以继续抓取。但是一旦遇到readystate=1,status=<未指定的错误>,则再连上网,就算重新建立xmlhttp对象,重新发送请求后,回应总是readystate=1,status=<未指定的错误>,无法继续抓取,除非重启excel,不知如何处理?

TA的精华主题

TA的得分主题

发表于 2014-11-24 09:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-11-24 09:58 | 显示全部楼层
renahu 发表于 2014-11-24 08:57
吴老师,我发现异步抓取时,一旦抓取中途断网后(我故意在屏幕右下角任务栏进行断网测试),大部分情况下 ...

xmlhttp.abort()
中断当前对象的HTTP请求.

TA的精华主题

TA的得分主题

发表于 2014-11-24 10:20 | 显示全部楼层
coby001 发表于 2014-11-24 09:58
xmlhttp.abort()
中断当前对象的HTTP请求.

是不是这样试一试:
ElseIf Timer - xhrArr(k, 2) > 10 Then
                                xhrArr(k, 1).abort
                                Set xhrArr(k, 1) = Nothing
                                iCnt = iCnt + 1
超时了先中断请求,再清空?

TA的精华主题

TA的得分主题

发表于 2014-11-24 19:32 | 显示全部楼层
wcymiss 发表于 2014-10-22 11:10
还是Cookie。。。

模拟Cookie的宗旨是向服务器发送一个它认可的Cookie。不管这个Cookie是回话Cookie还是 ...

吴姐,当Cookie很多时,怎么筛选,是全部模拟,还是一个一个尝试,比如百度,如下图,我所有都模拟,不知道为啥没有成功,一个一个尝试又费时间,有没有什么好的方法呀? 无标题.png

TA的精华主题

TA的得分主题

发表于 2014-11-24 19:57 | 显示全部楼层
本帖最后由 onthetrip 于 2014-11-24 20:03 编辑
wcymiss 发表于 2014-11-23 20:25
1、boundary是一串随机字符串,“-”的个数和字母个数内容都可以随机。
2、抓包的内容可以看到汉字是gb2 ...

吴姐,按照您的提示,我已经成功将responsetext的乱码问题解决了,谢谢.
但还有几个Adodb.stream的转码问题我始终不得要领,想咨询一下:
(1)在您提供的的自定义函数strtoUTF8byte中,我看到charset属性设置是gb2312,而不是utf8,这个charset是否是指strText的编码?这个函数用来转换成UTF8的数据流,但我没在代码中看到UTF8的设置啊
(2)这个charset为啥是gb2312,为什么需要转成UTF8(而不是别的),我在抓包文件中看到response的charset是GBK(难道不是看response框中的charset?)
(3)另外,数据流是否就是指二进制文件,是否也有unicode,UTF,GB**之分
这个转码问题彻底把我搞晕了:(,谢谢您的耐心
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 07:27 , Processed in 0.036076 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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