html - 使用查询获取请求在 VBA 中解析 Html
问题描述
我正在使用其他人的代码,因为这是其他人正在使用的旧文件,我想对其进行更新以提高效率,但我需要一些帮助。下面是vba操作。我需要的是获取信息,但删除除每次运行操作时都会更改的某个单词之外的所有内容。我可以使用正则表达式和 objRE.Pattern = "|" 但是这个词会根据状态而变化。
HTML:
<span onmouseover="ShowText('Message','blahblah'); return true;"
onmouseout="HideText('Message'); return true;"
href="javascript:ShowText('Message')">---(PSA)---</span>
</font><a href='?srn=numbers12131131'target='_self'><font color='#6666FF'
size='3'>numbers123232343</font></a><font size='3'>----Installed----MUM
Indication:In Scope-<font color='#00CC00'>PASS WITH WARNING</font>--- (20181018)
</td><tr></table> </b><br>
<table class="OrderForm" width="1000"> '
我只想在我的 excel 表中显示已安装状态。
需要工作的 VBA 代码:
Sub GetComment()
Dim book As Workbook
Dim sheet As Worksheet
Dim row As Integer
Dim SRN As String
Dim whttp As Object
Set book = ThisWorkbook
Set sheet = book.Worksheets("CMT Data")
Set whttp = CreateObject("WinHTTP.WinHTTPrequest.5.1")
row = 2
SRN = sheet.Cells(row, 1)
Do While SRN <> ""
Debug.Print SRN
whttp.Open "GET", "www.websitedatgoeshere.com" & SRN, False
whttp.SetRequestHeader "Cookie", "mycookiefromwebsite;"
whttp.send
Debug.Print whttp.responseText
sheet.Cells(row, 2) = whttp.responseText
row = row + 1
SRN = sheet.Cells(row, 1)
Loop
Set whttp = Nothing
End Sub
解决方案
这是基于当且仅当该词始终位于“----”和“----”之间,并且它是响应中的第一次出现。如果不是第一个,您可以根据需要调整索引 1。
Debug.Print Split(Split(whttp.responseText, "----")(1), "----")(0)
sheet.Cells(row, 2) = Split(Split(whttp.responseText, "----")(1), "----")(0)
推荐阅读
- python - 从 github api 获取 python 文件内容并解析为 dict
- asp.net-core-mvc - 如何在 asp net core mvc 应用程序中从我的 Azure AD B2C 获取用户列表?
- python - 如何让 django 找到 Sphinx 的特定 css 文件?
- winapi - 使用 Autohotkey 读取 StdErr 和 StdOut
- c# - 如何使对象“看起来”到对象
- reactjs - 在基于 Web 浏览器的客户端上存储授权(或 JWT)令牌的位置?
- haskell - 战舰游戏 - Haskell
- php - (JSON 文件)Wamp 中是否有任何功能可以使其正常工作?
- node.js - 无服务器框架 - 部署多个 AWS 云端分发
- java - 如何为 html 文件正确创建这些方法?