вложенные дочерние элементы извлекают данные без тегов или атрибутов - PullRequest
0 голосов
/ 09 января 2019

Не могу с vba извлечь данные соскоба индивидуально с сайта

ссылка на сайт футбольного рейтинга

<tr bgcolor="#ffffff">
   <td class="nomobil">30</td>
   <td>
     12.01.19
     <div class="ismobil">UK3</div>
   </td>
   .
   .
   .
   .
   .
</tr>

вставляя свой код, я извлекаю дату и код чемпионата

Dim objIE As Object
Dim itemEle As Object
dim td as Object
dim i as integer

Set objIE = CreateObject("internetexplorer.application")
objIE.Visible = True
objIE.navigate "http://www.soccer-rating.com/Manchester-City/220/"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
Set itemEle = objIE.document.getElementsByclassname("bigtable")(4)
i = 0
For Each td In itemEle.getElementsBytagname("tr")
  If i > 0 Then

    cells(i , 1) = td.getElementsBytagname("td")(1).Children(0).innertext
  end if
  i = i + 1
next td

в первой ячейке я нашел только код чемпионата вместо даты

если бы я сняла ребенка (0), у меня было бы это:

Cells(1, 1) = td.getElementsBytagname("td")(1).innertext

и я оказываюсь в камере (я, 1)

enter image description here

Ответы [ 2 ]

0 голосов
/ 10 января 2019

В любом случае, я решил, что

ячейки (i, 1) = split (td.getElementsBytagname ("td") (1). Дети (0) .innertext, Chr $ (13)) (1)

, где

Chr $ (13)

означает "ввод" в коде ASCII

0 голосов
/ 09 января 2019

Вы можете получить только дату со следующим:

Option Explicit
Public Sub GetDate()
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    With ie
        .Visible = True
        .Navigate2 "http://www.soccer-rating.com/Manchester-City/220/"
        While .Busy Or .readyState < 4: DoEvents: Wend
        Debug.Print Split(.Document.querySelector(".bigtable:nth-of-type(3) .bigtable tr:nth-of-type(1) td").innerText, Chr$(32))(0)
        .Quit
    End With
End Sub

С запросом xmlhttp и без браузера

Option Explicit    
Public Sub GetInfo()
    Dim html As HTMLDocument
    Set html = New HTMLDocument
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", "http://www.soccer-rating.com/Manchester-City/220/", False
        .send
        html.body.innerHTML = .responseText
    End With
    Debug.Print Split(html.getElementsByClassName("bigtable")(3).getElementsByTagName("TD")(0).innerText, Chr$(32))(0)
End Sub

Требуются ссылки на Microsoft Internet Controls и Microsoft HTML Object Library

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...