ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] word VBA利用正则网抓数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-6-22 12:42 | 显示全部楼层 |阅读模式
本帖最后由 duquancai 于 2016-6-22 12:53 编辑

刚学“网抓”,写了一个代码,恳请大神们指教一下,万分感谢!!!
Sub 网抓wordvba正则运用()
    Dim mt, mts As Object, m$, n%, i%
    Dim reg As Object, xDOC As Object
    Set xDOC = CreateObject("msxml2.xmlhttp.6.0")
    Set reg = CreateObject("VBscript.regexp")
    With xDOC
        .Open "GET", "http://fund.eastmoney.com/f10/F10DataApi.aspx?type=lsjz&code=000389&page=1&per=35", False
        .send
        m = .responseText
        With reg
            .Global = True: .IgnoreCase = False
            .Pattern = "(?:\d+[.-]\d+-*\d+%?)|净值日期|每万份收益|7日年化收益率(%)"
            Set mts = .Execute(m)
            n = mts.Count / 3
            With ActiveDocument
                .Tables.Add .Range(0, 0), n, 3
                .Tables(1).Style = "网格型"
                For Each mt In mts
                    i = i + 1
                    .Tables(1).Range.Cells(i).Range.Text = mt
                Next
            End With
        End With
    End With
    Set xDOC = Nothing: Set reg = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2016-6-23 14:10 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-6-23 16:06 | 显示全部楼层
Sub wordVBA网抓实例()
    Dim mt, mts As Object, m$, n%, i%, k%
    Dim reg As Object, xDoc As Object
    Set xDoc = CreateObject("msxml2.xmlhttp.6.0")
    Set reg = CreateObject("VBscript.regexp")
    Documents.Add
    With xDoc
        For k = 1 To 3 '抓取3页数据,根据实际需要更改
            .Open "POST", "http://www.pinble.com/Template/WebService1.asmx/Present3DList", False
            .setRequestHeader "Content-Type", "application/json; charset=utf-8"
            .setRequestHeader "Referer", "http://www.pinble.com/Lottery.htm"
            .send "{pageindex:'" & k & "',lottory:'TC7XCData_jiangS',pl3:'',name:'江苏七星彩',isgp: '0'}"
            m = .responseText
            With reg
                .Global = True: .IgnoreCase = False
                .Pattern = "(?:开奖时间|期号|开奖号码)|(?:\d{4}-\d{2}-\d{2})|\d{7}(?!%)"
                Set mts = .Execute(m)
                n = mts.Count / 3
                With ActiveDocument
                    .Tables.Add Selection.Range, n, 3
                    .Tables(k).Style = "网格型"
                    For Each mt In mts
                        i = i + 1
                        .Tables(k).Range.Cells(i).Range.Text = mt
                    Next
                End With
            End With
            Selection.EndKey wdStory
            Selection.Range.InsertAfter Chr(13)
            Selection.EndKey wdStory
            i = 0
        Next
    End With
    Set xDoc = Nothing: Set reg = Nothing
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-6-24 08:27 | 显示全部楼层
为什么不用excel,word的表格处理能力比excel差了不只一点点

TA的精华主题

TA的得分主题

发表于 2016-8-13 18:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
duquancai ,你 Excel 网抓都玩腻了呀,现在又搞起 Word 网抓了,恐怕为数不多的人才做这种触类旁通、举一反三的事。
真不愧是全才。

TA的精华主题

TA的得分主题

发表于 2016-10-26 17:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
http://club.excelhome.net/thread-1308224-1-1.html请老师帮忙看看!谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-2 13:11 , Processed in 0.038044 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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