ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

求助之前帖子的代码理解——网页抓取

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-6-18 08:14 | 显示全部楼层 |阅读模式
我看了论坛里面很多的网页抓取,实在是很难理解,在此求助大家。
http://club.excelhome.net/thread-1156325-1-1.html
问题1:
Sub test()
    Columns("A:E").ClearContents
    Set html = CreateObject("htmlfile")
    With CreateObject("msxml2.xmlhttp")
        url = "http://data.eastmoney.com/stock/tradedetail.html"
        .Open "get", url, False
        .send
        html.body.innerhtml = StrConv(.responsebody, vbUnicode)
        Cells(1, 2) = html.body.document.getElementById("notice_Ddl").DefaultValue
        Set tr = html.all.tags("tr")
        j = 1
        For r = 0 To tr.Length - 1
            If Val(tr(r).Cells(0).innertext) + 1 = j Then
                j = j + 1
                Cells(j, 1) = tr(r).Cells(0).innertext
                Cells(j, 2) = tr(r).Cells(1).innertext
                Cells(j, 3) = tr(r).Cells(2).innertext
                Cells(j, 4) = tr(r).Cells(6).innertext
                Cells(j, 5) = tr(r).Cells(8).innertext
            End If
        Next
    End With
End Sub


这个代码中,  .Open "get", url, False,后面的FALSE和用TURE的差别、
html.body.document.getElementById("notice_Ddl").DefaultValue,notice_Ddl是干嘛用的


innertext这个取网页的内容 tr(r).Cells(0).innertext取的是什么位置?




问题二、
Sub 按钮1_单击()
    Dim url, html, js
    br = [{"序号","代码","名称","交易日期","机构席位买入(万)","机构席位卖出(万)","类型"}]
    Range("a1:g1") = br
    Set html = CreateObject("htmlfile")
    Set js = CreateObject("scriptcontrol")
    js.Language = "jscript"
    url = "http://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=LHB"
    url = url & "&sty=JGXWMX"
    url = url & "&p=1"
    url = url & "&ps=" & 350    '数据1页就是50,7页就是350
    url = url & "&js=var%20suwenkai={%22data%22:[(x)],%22pages%22:%22(pc)%22,%22update%22:%22(ud)%22}"


    With CreateObject("msxml2.xmlhttp")
        .Open "get", url, False
        .send
        s = .responsetext
        js.addcode (s)

        slen = js.eval("suwenkai.data.length") - 1
        For i = 0 To slen
            n = n + 1
            ar = Split(js.eval("suwenkai.data[" & i & "]"), ",")
            Cells(n + 1, 1) = n
            Cells(n + 1, 2) = ar(2)
            Cells(n + 1, 3) = ar(4)
            Cells(n + 1, 4) = ar(5)
            Cells(n + 1, 5) = ar(3)
            Cells(n + 1, 6) = ar(1)
            Cells(n + 1, 7) = ar(0)
        Next
    End With
End Sub


代码里面, url 与了那么多次,每行的字符串是怎么来的,怎么用?
特别是url & "&sty=JGXWMX"和url = url & "&js=var%20suwenkai={%22data%22:[(x)],%22pages%22:%22(pc)%22,%22update%22:%22(ud)%22}" 不懂怎么来的、
此外ar = Split(js.eval("suwenkai.data[" & i & "]"), ",") 不懂什么意思




望各位大神解答了,谢谢!实在是看了很久,找了很多资料都不理解。
谢谢!!!!




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

本版积分规则

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

GMT+8, 2024-5-5 20:24 , Processed in 0.028019 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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