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-12-6 20:44 来自手机 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
本帖最后由 wcymiss 于 2014-12-6 21:02 编辑
coby001 发表于 2014-12-6 20:02
别鄙视网易了 ~~注意看链接的协议: https
这是个加密传输协议。你之所以看到 ...


对https了解还不多,不敢妄言。

但,对于这个网页,我用vba代码登录,username和password是明明白白的写在SendDate里的。冲这点就足够我鄙视它了。不说和淘宝、新浪比吧,改版前的百度也是明码,可也还是有两个加密参数的。

另外,https也只是为了数据传输的安全,不影响网抓代码的编写(数据POST之后会变成怎样的密文我就不必关心了)。至少这个网页是如此。

TA的精华主题

TA的得分主题

发表于 2014-12-6 21:59 | 显示全部楼层
wcymiss 发表于 2014-12-6 20:44
对https了解还不多,不敢妄言。

但,对于这个网页,我用vba代码登录,username和password是明明白白 ...
https也只是为了数据传输的安全,不影响网抓代码的编写(数据POST之后会变成怎样的密文我就不必关心了)
关键就在于,Fiddle 是拦截 POST之后 的数据包,如果你不允许它替换 证书,Fiddle 也看不到明文的。

TA的精华主题

TA的得分主题

发表于 2014-12-7 13:17 | 显示全部楼层
Sub Main()
    Dim strText As String, i As Integer
    For p = 1 To 2
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        .Open "GET", "http://rep.iplant.cn/protlist?page=" & p, False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .setRequestHeader "Referer", "http://rep.iplant.cn/protlist"
        .Send
        strText = .Responsetext
        Debug.Print strText
    End With
    Dim arr()
    tt = Split(strText, "prot/""</a>")
    Debug.Print tt
End Sub

谢谢吴姐,我文字处理方面,提示类型不匹配,是怎么回事

点评

tt是数组,不能debup.print  发表于 2014-12-7 17:01
这也来问~,自己按F1 吧  发表于 2014-12-7 13:19

TA的精华主题

TA的得分主题

发表于 2014-12-7 16:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub Main()
    Dim strText As String
    Dim i As Long, j As Long
    Dim TR As Object, TD As Object
    For p = 1 To 1
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        .Open "GET", "http://rep.iplant.cn/protlist?page=" & p, False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .setRequestHeader "Referer", "http://rep.iplant.cn/protlist"
        .Send
        strText = .Responsetext
    End With
   
    tt = Split(strText, "a href")
    For i = 1 To UBound(tt) - 1
    arr = Split(Split(strText, "'>")(i), "</")(0)
    Debug.Print arr
    Next
Next
End Sub

需要的信息基本得到了,就是不知道怎么放在excel里面,还请教高手指点!

TA的精华主题

TA的得分主题

发表于 2014-12-7 16:23 | 显示全部楼层
顶一下。。。。。。。。。。。。。。。。。

TA的精华主题

TA的得分主题

发表于 2014-12-7 17:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-12-7 18:39 | 显示全部楼层
https会对GET或POST参数加密吗?该怎么处理


https会对GET或POST参数加密吗?
如果加密,为什么还是可以通过浏览器工具能看到那些明文参数呢?一点也没有加密的感觉.....
这样还算什么安全作用?
请大家讨论一下,谢谢
------解决方案--------------------
SSL应该是在TCP层和HTTP层之间的,会对传输的数据进行加密,针对的是传输过程的安全。
具体的过程大概是: 客户端输入 - 加密 - 传输给服务器 - 服务解密器处理 - 加密 - 回传个客户端 - 客户端解密 - 呈现出来。

至于firebug之类的浏览器调试工具,因为他们得到的是客户端加密之前/解密之后的数据,因此是明文的。

比如你用https协议站点输入用户名密码,传输的过程中是加密的。 当然你不会输入的时候让其他人在你的浏览器用firebug查看你的输入吧。


------解决方案--------------------
传输数据加密,不代表客户端和服务器端看到的都是密文。防止有人截获tcp/ip中的数据包


http://www.ylzx8.cn/yingyongfuwuqi/web-application-server/20060.html

TA的精华主题

TA的得分主题

发表于 2014-12-7 19:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wcymiss 发表于 2014-10-21 12:51
更多Fiddler的使用方法,敬请参考《Fiddler调试权威指南》一书。
电子书下载地址:http://pan.baidu.com/s ...

吴老师,这是我的版本,不知足够新吗?
Fiddler Web Debugger (v2.4.9.4)
Built: 2014年9月18日

64-bit AMD64, VM: 58.00mb, WS: 65.00mb
.NET 2.0.50727.5485 WinNT 6.1.7601 SP1

TA的精华主题

TA的得分主题

发表于 2014-12-7 20:00 | 显示全部楼层
Fiddler Web Debugger (v4.4.9.4)
Built: 2014年9月18日星期四

32-bit x86, VM: 34.00mb, WS: 38.00mb
.NET 4.0.30319.1 WinNT 5.1.2600 SP3

TA的精华主题

TA的得分主题

发表于 2014-12-8 16:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
新浪微博
  1. Sub wb()
  2.     Dim htm As New WinHttpRequest, str As String
  3.     Dim reg As New RegExp
  4.     Dim ar, arr, i, j, m, n

  5.     With htm
  6.         .Open "GET", "http://weibo.com/friends?leftnav=1&wvr=6&isfriends=1&step=2", False
  7.         .SetRequestHeader "cookie", _
  8.                           "SUE=es%3Df01xxxxxxxx%253D%26rv%3D0" & _   
  9.                           ";SUP=cv%3Dxxxxxxxxxxxx"
  10.         .Send
  11.         str = .ResponseText
  12.         Debug.Print str
  13.         With reg
  14.             .Global = True
  15.             .MultiLine = True
  16.             .Pattern = "\s"
  17.             str = .Replace(str, "")
  18.             .Pattern = "nick-name=\""(.*?)\\.*?content\"">(.*?)<a"
  19.             Set ar = .Execute(str)
  20.         End With
  21.     End With
  22.     ReDim arr(0 To ar.Count - 1, 1)
  23.     For i = 0 To ar.Count - 1
  24.         For j = 0 To 1
  25.             arr(i, j) = ar.Item(i).SubMatches(j)
  26.         Next
  27.     Next
  28.     Sheet1.Cells(3, 1).Resize(65533, 4).ClearContents
  29.     n = Sheet1.Range("a65533").End(xlUp).Row
  30.     Sheet1.Cells(n + 1, 1).Resize(ar.Count - 1, 2) = arr
  31. End Sub
复制代码

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 11:45 , Processed in 0.050379 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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