ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-23 13:27 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
kangatang 发表于 2014-10-23 13:14
不知从什么时候开始,EH论坛变得有点卡顿,给你回复时,我3次重新打开浏览器,再登录EH论坛才得以操作成功 ...
两个关注:
1)Request Header的制作 (=>抓包工具分析后模拟制作即可)
2)发送的方式的选择,xmlhttp/winhttp....还有其它比较底层的发送方式:winsock、DOS命令等



没必要学的如此深吧~
如果既要方式多样,又要方便灵活,学学python + requests模块 也不错。易于操控,功能强大。



TA的精华主题

TA的得分主题

发表于 2014-10-23 14:08 | 显示全部楼层
浮华、缠绕指尖 发表于 2014-10-22 22:23
也是一个道理。。抓数据之前最好清缓存,都差不多。。

吴姐也这样讲。
如何手动清缓存啊?——能给一个截图加以说明吗?

点评

百度。。。。  发表于 2014-10-23 14:40

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-23 14:50 | 显示全部楼层
其实用fiddler网抓的方法写到这里基本可以告一段落了,剩下的就是多多操作,多写代码,多攒经验。有时候某个参数是否是动态,是否影响数据获取,经验多了,靠肉眼也能辨别个大概了。

登录和上传也一样是GET/POST+setRequestheade+Send,只不过登录的参数一般比较复杂,在fiddler里抓不到明码来源,需要解读js脚本代码;上传的SendData比较繁琐,所以这两项放在后面单独讲。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-23 14:51 | 显示全部楼层
本帖最后由 wcymiss 于 2014-10-24 15:18 编辑

对获取数据作个小结
1、清除缓存cookie历史记录后用fiddler抓包。
2、搜索所需数据,找到数据真实网页(别忘了对fiddler事先进行设置,否则有可能搜不到数据)
3、用代码模拟Request框的Raw按钮下的内容:
   首先只写Open和Send,看是否有数据;(xmlhttp)(winhttp有时解析utf-8字符不成功,所以初始测试首选xmlhttp
   无数据的话,首选模拟Referer;(winhttp)
   仍然不行的话,观察Cookie或是URL或SendData中有无动态参数。有的话需要追根朔源。(这步需要时间和耐心)
   其他模拟一般都是小概率事件,如果遇到了我只能说你很不幸。

最后,祝你成功!


评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-10-23 14:53 | 显示全部楼层
592rmb 发表于 2014-10-23 12:41
工作中遇到的问题,虽然一直在学习,但因非专业,到现在还不能完全自己解决,期待高手们相助,谢谢了!

我在查询结果页面的源码中找不到需要的数据,所以就不知道怎么搞了

点评

伸手党。鉴定完毕。  发表于 2014-10-23 15:10

TA的精华主题

TA的得分主题

发表于 2014-10-23 15:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
592rmb 发表于 2014-10-23 14:53
我在查询结果页面的源码中找不到需要的数据,所以就不知道怎么搞了

说话要具体点。
网址?
要什么数据?

TA的精华主题

TA的得分主题

发表于 2014-10-23 15:12 | 显示全部楼层
VBA万岁 发表于 2014-10-23 14:08
吴姐也这样讲。
如何手动清缓存啊?——能给一个截图加以说明吗?

百度结果:
http://zhidao.baidu.com/link?url=-9S1gJlPKiBWbC-e_wBQ8lQUI409P4xuGZ-wtvLjLUZzvwEyDNbpFAU9K9tBMvZ_s79fBs2Ff6zRh11XIsbzDq
☆ IE61、点击工具菜单。
      2、选择 Internet 选项。
      3、点击常规标签。
      4、点击删除文件按钮。
      5、在确认 窗口中点击确定按钮。
      6、点击确定按钮关闭"Internet 选项"窗口。
☆ IE 71、点击工具菜单。如果您没找到该菜单,请按键盘上的 Alt 键来显示菜单。
      2、选择删除浏览的历史记录。
      3、点击删除文件按钮。
      4、在确认窗口中点击是按钮。
      5、点击关闭按钮。
☆ I E81、点击工具菜单。如果您没找到该菜单,请按键盘上的 Alt 键来显示菜单。
      2、选择删除浏览的历史记录。
      3、选中 Internet 临时文件复选框。
      4、点击删除按钮。
      5、将文件删除后,点击确定。
☆火狐浏览器Firefox要清空 Mozilla Firefox 的缓存,请按以下步骤操作:
      1、单击浏览器顶部的"Tools"(工具)菜单,并选 择"Options"(选项)。
      2、单击"Privacy"(隐私)。
      3、单击"Cache"(高速缓存)旁边的"Clear"(清空缓存)。
      4、单击"OK"(确定)。
☆傲游(Maxthon)1、单击浏览器顶部的"工具"菜单,并选择"Internet选项"。
      2、在常规下选择删除浏览历史记录。
      3、选择Internet临时文件
      4、将文件删除后,点击关闭。
☆谷歌浏览器chrome要清空chrome的缓存,请按以下步骤操作:
      1、 点击小扳手图标
      2、选择“选项”
      3、选择“个人资料”
      4、在浏览数据中,点击“清除浏览数据”
      5、弹出小窗 口点击“清除浏览数据”
☆360浏览器要清空360的缓存,请按以下步骤操作:
      1、单击浏览器顶部的"工具"菜单,并选择"IE选项"。
      2、在常规下选择删除浏览的历史记录。
      3、选中 Internet 临时文件复选框。
      4、点击删除按钮。
      5、将文件删除后,点击确定。重启浏览器~~

截图如下:
手动清除网页缓存截图.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-10-23 15:36 | 显示全部楼层
coby001 发表于 2014-10-23 15:04
说话要具体点。
网址?
要什么数据?

请看一下74楼的问题,是我工作中遇到的问题,但不会弄,麻烦帮忙弄一下,我希望我自己也能学会,谢谢了!

TA的精华主题

TA的得分主题

发表于 2014-10-23 15:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好贴,留下学习的脚印,谢谢分享

TA的精华主题

TA的得分主题

发表于 2014-10-23 16:08 | 显示全部楼层
例子非常强大。。。。。一般的人找不全这么多的例子,感叹大师身经百战的传奇经历。这不是一个普通的知识贴,她在告诉我们什么叫 "实践出真知"。。。。。。越来越高大了。。。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-21 00:17 , Processed in 0.056275 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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