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 11:31 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
吴姐终于出教程了啊,收藏了

点评

很久没见你了。  发表于 2014-10-23 12:13

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-23 12:13 | 显示全部楼层
说到skey和bkn,索性再唠叨一下用IE获取Cookie的例子。

QQ的skey用winhttp比较难以获取,当中包含了一些复杂的js算法。

不过没关系,我们可以利用IE。当然,你的QQ软件需要先登录。

手工用IE打开http://xui.ptlogin2.qq.com/div/qlogin_div.html,如果提示安装控件请下载安装。

运行下面的代码即可得到登录QQ的skey值。
如果登录了多个QQ,代码里需要加上判断。这个代码我就不写了,是IE的用法,不在本帖讨论的范围内。
  1. Sub Main()
  2.     Dim objDoc As Object
  3.     Dim strText As String
  4.     Dim skey As String, t
  5.    
  6.     With CreateObject("InternetExplorer.Application")
  7.         .Navigate "http://xui.ptlogin2.qq.com/div/qlogin_div.html"
  8.         While .readystate <> 4 Or .busy: Wend
  9.         For Each objDoc In .Document.getelementsbytagname("INPUT")
  10.             If objDoc.Type = "submit" Then Exit For
  11.         Next
  12.         objDoc.Click
  13.         t = Timer
  14.         While Timer < t + 4: Wend
  15.         strText = .Document.cookie
  16.         .Quit
  17.     End With
  18.     Debug.Print strText
  19.     skey = Split(Split(strText, "skey=")(1), ";")(0)
  20.     Debug.Print skey
  21. End Sub
复制代码
试试看,能不能获取到skey。

顺便分享下获取bkn的代码:
  1. Function GetBkn(skey As String) As String
  2.     With CreateObject("MSScriptControl.ScriptControl")
  3.         .Language = "javascript"
  4.         GetBkn = .Eval("bkn=function(a){for(var c=5381,b=0,d=a.length;b<d;++b)c+=(c<<5)+a.charAt(b).charCodeAt();return c&2147483647}('" & skey & "');")
  5.     End With
  6. End Function
复制代码

点评

特别提醒,有httponly的cookie是无法用.document.cookie来获取的  发表于 2014-10-26 17:35

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-10-23 12:13 | 显示全部楼层
wcymiss 发表于 2014-10-22 12:30
新手作业:

网站:http://weibo.com/guide/welcome

近两天忙,作业一定补交的。

TA的精华主题

TA的得分主题

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

高考录取结果查询.rar

2.54 KB, 下载次数: 197

点评

本帖就是针对非专业人士的。楼主本人也是非专业人士。  发表于 2014-10-23 12:44

TA的精华主题

TA的得分主题

发表于 2014-10-23 12:42 | 显示全部楼层
wcymiss 发表于 2014-10-22 16:56
再上一个动态参数的例子:

网站:http://www.abchina.com/cn/Public ... t20101217_45743.htm

将老师抓取到的数据导入Excel表如附件:
中国农业银行日元汇率提取.zip (1.19 MB, 下载次数: 587)

TA的精华主题

TA的得分主题

发表于 2014-10-23 12:53 | 显示全部楼层
VBA万岁 发表于 2014-10-23 08:31
我也是新手,一同期待wcymiss老师更多更精彩的讲解......

我看了你的作业,真棒,特详细,适合我们这些基础差的研究,我正在一点一点看你的代码,终于看明白了,呵呵,多亏你的作业,谢谢

TA的精华主题

TA的得分主题

发表于 2014-10-23 12:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-10-23 13:01 | 显示全部楼层
本帖最后由 引子玄 于 2014-10-23 13:09 编辑

我看,你的抓取方法,就叫“Fiddler抓取法”——很贴切很形象,借助Fiddler武器的抓。
不过我是习惯了徒手抓,啥武器都不用,但要用IE,否则徒手抓不了。

TA的精华主题

TA的得分主题

发表于 2014-10-23 13:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 coby001 于 2014-10-23 13:13 编辑
引子玄 发表于 2014-10-23 13:01
我看,你的抓取方法,就叫“Fiddler抓取法”——很贴切很形象,借助Fiddler武器的抓。
不过我是习惯了徒手 ...


算不上吧~
Fiddler只是辅助工具,又不是直接用菲德勒抓数据。

TA的精华主题

TA的得分主题

发表于 2014-10-23 13:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 kangatang 于 2014-10-23 13:17 编辑
wcymiss 发表于 2014-10-21 16:52
吐槽:
卡死我了,是EH慢还是我的网速慢?一下午就写了这点帖子!每次都要刷新好多次才能成功发帖!我的网 ...

不知从什么时候开始,EH论坛变得有点卡顿,给你回复时,我3次重新打开浏览器,再登录EH论坛才得以操作成功。

学习吴女神课程,依据http协议向服务器发送requests。
两个关注:
1)Request Header的制作 (=>抓包工具分析后模拟制作)
2)发送的方式的选择,xmlhttp/winhttp....还有其它比较底层的发送方式:winsock、DOS命令等

点评

我写点低端的,你再开贴写点高级的:-)  发表于 2014-10-23 15:09
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-18 14:19 , Processed in 0.052058 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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