ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2016-3-6 22:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:网页交互

Sub HomeWork1_1()
'新手:DongYu 优化:NeemxYang
'作业:1、网站:http://data.bank.hexun.com/lccp/jrxp.aspx
'操作:点击“今日在售产品”,获取今日在售产品第一页的数据。
'工具-引用 MSXML 3.0-6.0

   
    Dim xml As New MSXML2.XMLHTTP, url As String, St As String
    Dim arr, brr, ar, i, c, j, k
    With ActiveSheet
   
    .[a1].Resize(1, 10) = [{"编号","产品名称","银行","起售日","停售日","币种","管理期(月)","产品类型","预期收益(%)","收益"}]
    End With
    For j = 1 To 44
    url = "http://data.bank.hexun.com/lccp/Jrxp.aspx?col=1&tag=desc&date=" & Date & "&page=" & j '修改了日期起止时间为今日和分页循环(今天是44页)
    With xml
        .Open "GET", url, False
        .send
        St = .responseText
    End With
    St = Split(Split(St, "<div class=""mark"">")(1), "</div>")(0)
    arr = Split(St, "<tr align='center'>")
    ReDim brr(1 To UBound(arr), 1 To 9)
    For i = 1 To UBound(arr)
        ar = arr(i)
        brr(i, 1) = Split(Split(ar, "value='")(1), "'")(0) + Split(Split(ar, "<font class='cred'>")(1), "</font>")(0)
        brr(i, 2) = Split(Split(ar, "</font></td><td class='hl'>")(1), "</td>")(0)
        brr(i, 3) = Split(Split(ar, "<td  class='on'>")(1), "</td>")(0)
        brr(i, 4) = Split(Split(ar, "<td  class='hl'>")(1), "</td>")(0)
        brr(i, 5) = Split(Split(ar, "<td  class='hl'>")(2), "</td>")(0)
        brr(i, 6) = Split(Split(ar, "<td  class='hl'>")(3), "</td>")(0)
        brr(i, 7) = Split(Split(ar, "<td  class='hl'>")(4), "</td>")(0)
        brr(i, 8) = Split(Split(ar, "<td  class='hl'>")(5), "</td>")(0)
        brr(i, 9) = Split(Split(Split(ar, "<td  class='hl'>")(5), "</td>")(1), ">")(1)

    Next i
    With ActiveSheet
        '.Cells.Clear
        k = [b63356].End(3).Row
        .Columns("D:E").NumberFormatLocal = "yyyy-m-d"
        .Range("b" & k + 1).Resize(UBound(brr, 1), 9) = brr
        With .Cells     '优化了单元格的自动调整及水平和垂直对齐
        .Rows.AutoFit
        .Columns.AutoFit
        .VerticalAlignment = xlCenter
        .HorizontalAlignment = xlCenter
        End With
    End With
Next j
ActiveSheet.[a:j].Sort key1:=[i2], order1:=xlDescending     '增加了对收益排序 降序排序

End Sub

TA的精华主题

TA的得分主题

发表于 2016-3-6 22:55 | 显示全部楼层
neemx 发表于 2016-3-6 22:24
Sub HomeWork1_1()
'新手:DongYu 优化:NeemxYang
'作业:1、网站:http://data.bank.hexun.com/lccp/jr ...

还不会创造,所以从前人的代码做修改好了。

TA的精华主题

TA的得分主题

发表于 2016-3-19 19:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请问各位先进
1. 为什么我用 xmlhttp 都无法抓到 https 的 .responsetext ?
2. ServerXMLHTTP,WinHttpRequest有办法像xmlhttp一样登录一次后,就不需再登录的办法吗?

TA的精华主题

TA的得分主题

发表于 2016-3-29 14:47 | 显示全部楼层
太强大了,值得学习

TA的精华主题

TA的得分主题

发表于 2016-3-31 14:18 | 显示全部楼层
wcymiss 发表于 2014-10-22 11:10
还是Cookie。。。

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

吴姐,我刚刚看你抓网页的帖子,是不是因为改版了,当时模拟cookie登录excelhome的代码现在不好用了,我按照自己抓取的cookie将代码更新,但是不好用,请问cookie是需要新鲜的吗?平时如何区分要不要抓取新鲜的cookie还是用原来的cookie

TA的精华主题

TA的得分主题

发表于 2016-4-2 06:35 | 显示全部楼层
不懂html也来学网抓,留下记号

TA的精华主题

TA的得分主题

发表于 2016-4-20 07:12 | 显示全部楼层

TA的精华主题

TA的得分主题

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

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

老师您好,我抓的一个包里有个
__RequestVerificationToken=xCNvtQEYDeJnrylO6T3XjKjAGnF-hHeLpabE37IlOk8kCT0XxE9lDNsYHvA9CyNEbQbW_Q_ohtvsVtINoOd7BgNeoZcZP-iBcS7Hu1qXci5CWXa3LUdm2rgGWwc7nJh6nNT0P8WKQ4c9fLvdE-qRhVi0ATIKnvDtniblOgDOBOykpF-ok9Y6b8EaprDz6XKs79h172HvXTlALC7Ri3UKbQ2
这个是不是类似这个例子中的动态参数__VIEWSTATE?但我搜索__RequestVerificationToken的内容却找不到,不知道这是什么东西

TA的精华主题

TA的得分主题

发表于 2016-5-4 21:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wcymiss 发表于 2014-10-28 16:46
登录之后可以做什么----查询数据

登录并非是我们的最终目的。最终目的是查询一些非登录不能查看的数据, ...

吴老师,我做了些登录的实例,为什么在立即窗口提示登录成功的情况下,有的网页显示已经登录上去,而有的网页却没有任何显示?

TA的精华主题

TA的得分主题

发表于 2016-5-6 17:41 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-15 23:02 , Processed in 1.051810 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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