Разбор HTML в VBA с помощью запроса get запрос - PullRequest
0 голосов
/ 24 октября 2018

Я использую чужой код, потому что это старый файл, который используют другие люди, я хочу обновить его, чтобы сделать его более эффективным, но мне нужна небольшая помощь.Ниже приведена операция 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 Ответ

0 голосов
/ 24 октября 2018

Это основано на том и только в том случае, если слово всегда находится между «----» и «----», и что это первое вхождение в ответе.Если вы не первый, вы можете настроить индекс 1, как требуется.

Debug.Print Split(Split(whttp.responseText, "----")(1), "----")(0)
sheet.Cells(row, 2) = Split(Split(whttp.responseText, "----")(1), "----")(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...