zoukankan      html  css  js  c++  java
  • 使用vba处理网页爬虫

    https://www.sogou.com/link?url=DSOYnZeCC_rR_TP93bdO6GxT14t4sbuOwR4Xg1N-va4KkyI7DJgSnPNx6aHQaobTIeZ8aQ291kY.

     如有侵权,请联系删除

    Sub Main()
    ActiveSheet.Cells.Clear
    Url = "https://www.qppstudio.net/public-holidays-by-date/month1.htm"
    Set oHttp = CreateObject("MSXML2.XMLHTTP") '创建一个xmlhttp对象
    Set odom = CreateObject("htmlfile") '创建一个Dom对象
    With oHttp
    'open,创建一个新的http请求,并指定此请求的方法、URL以及验证信息(用户名/密码) 'send,发送请求到http服务器并接收回应 .Open "GET", Url, False '使用Open方法,用get请求,False代表非异步加载
    .Open "GET", Url, False '使用Open方法,用get请求,False代表非异步加载
    .send '将open方法的信息发送给网页服务器
    odom.body.innerHTML = .responseText '将响应网页的HTML赋值给Dom对象,并只需要body标签里面的内容
    End With
    dom (odom)
    End Sub

    Sub dom(odom As Object)
    i = 2
    For Each Item In odom.all
    If Item.className = "list-item" Then
    For Each itemch In Item.Children
    If itemch.className = "list-item-heading" Then
    Range("a" & i) = itemch.innerText
    ElseIf itemch.className = "list-subitem" Then
    Range("b" & i) = itemch.Children(1).innerText
    Range("c" & i) = itemch.Children(3).innerText
    i = i + 1
    End If
    Next
    Exit For
    End If
    Next
    End Sub

    Sub Main()
    ActiveSheet.Cells.Clear
    Url = "https://www.qppstudio.net/public-holidays-by-date/month1.htm"
    Set oHttp = CreateObject("MSXML2.XMLHTTP") '创建一个xmlhttp对象
    Set odom = CreateObject("htmlfile") '创建一个Dom对象
    With oHttp
    'open,创建一个新的http请求,并指定此请求的方法、URL以及验证信息(用户名/密码) 'send,发送请求到http服务器并接收回应 .Open "GET", Url, False '使用Open方法,用get请求,False代表非异步加载
    .Open "GET", Url, False '使用Open方法,用get请求,False代表非异步加载
    .send '将open方法的信息发送给网页服务器
    odom.body.innerHTML = .responseText '将响应网页的HTML赋值给Dom对象,并只需要body标签里面的内容
    End With
    dom (odom)
    End Sub

    Sub dom(odom As Object)
    i = 2
    For Each Item In odom.all
    If Item.className = "list-item" Then
    For Each itemch In Item.Children
    If itemch.className = "list-item-heading" Then
    Range("a" & i) = itemch.innerText
    ElseIf itemch.className = "list-subitem" Then
    Range("b" & i) = itemch.Children(1).innerText
    Range("c" & i) = itemch.Children(3).innerText
    i = i + 1
    End If
    Next
    Exit For
    End If
    Next
    End Sub

  • 相关阅读:
    [Flink] 从 RabbitMQ 读取并计算后输出到 MySQL
    极光笔记丨搭建UMS私有云文件服务器
    极光笔记丨Spark SQL 在极光的建设实践
    Iog4j2漏洞相关技术分析
    极光笔记丨关于数据大屏一比一还原设计稿这件事
    极光笔记|基于CMPP协议集成短信测试桩全流程实践分享
    极光笔记|数据服务平台一期建设
    【记录】GIT常用命令
    【原创】使用micrel的千兆PHY芯片ksz9021GN和KSZ9021GQ前要注意
    【记录】调试千兆以太网PHY芯片DP83865的痛苦经历
  • 原文地址:https://www.cnblogs.com/lidapengwww/p/12830856.html
Copyright © 2011-2022 走看看