首页 > 其他分享 >VBA爬虫案例

VBA爬虫案例

时间:2022-09-23 00:34:50浏览次数:53  
标签:VBA Set End prgramBarShow Cells tr 爬虫 案例 objXML


Private Sub 批量获取()
Dim rowTotal!, res$, i!, t!, index!
Dim objXML, objSC, obj, strModel$, queryUrl$, detailUrl$, html, tr, td
Application.ScreenUpdating = False


queryUrl = "http://waybill/trackInfoByCode"
detailUrl = "http://waybill/doQueryReceiver"
strModel = "post"
'Set objSC = CreateObject("ScriptControl"): objSC.Language = "Javascript"
Set html = CreateObject("htmlfile"): html.DesignMode = "on"
rowTotal = [A65536].End(3).Row
Select Case MsgBox("慎用!有可能会被封ERP", 68, "警告")
Case 6
'************登录************
Set objXML = CreateObject("Msxml2.ServerXMLHTTP")
With objXML
.Open "post", "http://ssa.jd/login", False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
D = Sheets("登录").Range("B4")
.send (D)
End With
If InStr(objXML.responsetext, "登录") Then
Sheet2.Activate
MsgBox "登录失败!请检查用户、密码是否正确"
Exit Sub
End If

'获取字段
For i = 2 To rowTotal
If Cells(i, 1) <> "" Then
t = Timer
Do While Timer - 0.1 < t '防止服务器堵塞
DoEvents
Loop

'全程跟踪
res = getHTML(objXML, strModel, queryUrl, "orderCode=&code=" & Cells(i, 1)) '查询返回html文件
html.body.innerHTML = res
Set tr = html.getElementById("grvList").all.tags("tr")
Set td = tr(tr.Length - 1)
For index = 0 To td.Cells.Length - 1
Sheet1.Cells(i, index + 2) = td.Cells(index).innertext
Next index

'运单详情,获取地址
' res = getHTML(objXML, strModel, detailUrl, "opeType=1&waybillCode=VX50932792330" & Cells(i, 1)) '查询返回json字符串
' objSC.addcode ("var obj =" & res)
'进度条
prgramBarShow.Show 0
prgramBarShow.lblprogress.Width = prgramBarShow.lblBack.Width * i / rowTotal
prgramBarShow.percert.Caption = Format(Round(i / rowTotal * 100, 2), "0") & "%"
prgramBarShow.Repaint

End If
Next i
End Select
Unload prgramBarShow
Set objXML = Nothing
Set objSC = Nothing
Set tr = Nothing
Set td = Nothing
Application.ScreenUpdating = True
End Sub
Function getHTML(objXML, strModel, strUrl, sdata)
With objXML
.Open strModel, strUrl, 0
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.setRequestHeader "Accept", "*/*"
.send (sdata)
End With
Do While objXML.Readystate <> 4
DoEvents
Loop
getHTML = objXML.responsetext
End Function
Private Sub 整理格式()
Sheets("查询界面").Range("A2:B65536").ClearContents
Sheets("查询界面").Range("C2:F65536").ClearContents

End Sub

 

标签:VBA,Set,End,prgramBarShow,Cells,tr,爬虫,案例,objXML
From: https://www.cnblogs.com/yiblue/p/16721329.html

相关文章

  • 爬虫api的学习
    刚刚写作业的时候发现有许多的api我确实不咋会用所以我在这里统计一下,防止下次忘记  get的意思是在表达式里面找到需要的元素如  但是题目很明显不是这样的,答案......
  • AOP入门案例
     导入坐标   制作共性功能  定义切入点  绑定切入点和通知关系      ------------------------------------        ......
  • scrapy框架之创建项目运行爬虫
    创建scrapyscrapystartproject项目名称创建蜘蛛(爬虫文件)scrapygenspider蜘蛛名称网址爬取网页(举百度的列子)编写爬虫文件importscrapyclassBaiduSpider(......
  • Java实现网络爬虫 案例代码:从网上获取《三国演义》全文
     案例:从网上获取《三国演义》全文需求说明搭建开发环境,实现《三国演义》全文保存在本地步骤分析1、访问网址:http://www.shicimingju.com/book/sanguoyanyi.html2、......
  • ios逆向爬虫-入门保姆级-实战某博APP
    ios逆向爬虫-入门保姆级-实战某博APP设备iPhone11,系统14.2Windows11工具Frida15.2.2frida-ios-dumpIda7.7流程手机越狱爱思助手安装目标APPCydia安装Frid......
  • python 爬虫curl
    目录python爬虫curlpython爬虫curl#!/usr/bin/envpython#-*-coding:utf-8-*-#BY:wenchao.Litime:2021/11/18#curl工具:c写的一个命令#-A设置user-agent......
  • 010——面向对象基础案例——简单实现简易购物车代码演示
    熟悉面向对象思维创建类packagecom.google.demo;/***@authorNorth*@date2022/9/2013:27*/publicclassGoods{intid;//编号Stringname;/......
  • 【爬虫】爬虫简单举例(三种写法) 涉及requests、urllib、bs4,re
    目录写法1:requests+re写法2:urllib+re方法3:request+bs4写法1:requests+re#-*-coding:UTF-8-*-#开发人员:萌狼蓝天#博客:Https://mllt.cc#笔记:Https://cnbl......
  • otdolist 案例
    1.渲染默认任务  2.回车添加任务 3.删除任务  4.底部任务数量 5. tab栏切换  6.tab切换显示不同任务  7.清除已完成的任务  8.......
  • 爬虫实战项目-数据爬取
    1.首先在爬虫之前我们应该理清楚爬虫的步骤(请求数据——获取数据——解析数据——保存数据)其中我认为里面复杂一点的就是解析数据,因为不同的数据我们需要的解析方法可能不......