kuhtiov писал(а):Ребят, есть у вас пример для работы с модулем HTMLParser.bas. Задача отпарсить страницу и перенести данные в таблицу
Dim s As String
Dim i As Integer
For i = 0 To WB.document.Forms(0).length - 1
s = s & "Object name =""" & WB.document.Forms(0).Item(i).Name & """" & vbCrLf & "Object value =""" & WB.document.Forms(0).Item(i).Value & """" & vbCrLf & "Object type =""" & WB.document.Forms(0).Item(i).Type & """" & vbCrLf & vbCrLf
Next
MsgBox s
<table width="100%" cellpadding=4>
<tr>
<th width="15%">Ящик</th>
<th width="15%">Дата</th>
<th width="10%">Кб</th>
<th width="10%">Писем</th>
<th>Max,Кб</th>
</tr> <tr>
<td align=left>adm@mail.ru</td>
kuhtiov писал(а):и как мне например из этого выдрать название и все остальное?
- Код: Выделить всё
<table width="100%" cellpadding=4>
<tr>
<th width="15%">Ящик</th>
<th width="15%">Дата</th>
<th width="10%">Кб</th>
<th width="10%">Писем</th>
<th>Max,Кб</th>
</tr> <tr>
<td align=left>adm@mail.ru</td>
For Each HTMLTable1 In HTMLDocument1.All.tags("TABLE")
If HTMLTable1.className = "titelbalk" Then
If HTMLTable1.cells.Item(0).All.Item(0).nodeName = "H2" Then
sH1 = HTMLTable1.cells.Item(0).All.Item(0).innerText
If HTMLTable1.cells.Item(0).All.Item(1).nodeName = "A" Then
s = HTMLTable1.cells.Item(0).All.Item(1).pathname
kuhtiov писал(а):Все равно логику не понял, как происходит парсинг.
Option Explicit
Public Sub Main()
Dim hd As Object
Dim sss As String
sss = "<table width=""100%"" cellpadding=4>" & vbCrLf _
& "<tr>" & vbCrLf _
& "<th width=""15%"">Ящик</th>" & vbCrLf _
& "<th width=""15%"">Дата</th>" & vbCrLf _
& "<th width=""10%"">Кб</th>" & vbCrLf _
& "<th width=""10%"">Писем</th>" & vbCrLf _
& "<th>Max,Кб</th>" & vbCrLf _
& "</tr>" & vbCrLf _
& "<td align=left>adm@mail.ru</td></table>" & vbCrLf
Set hd = CreateObject("HTMLFile")
hd.Clear
hd.Open
hd.Write sss
ParseHTML hd
End Sub
Private Sub ParseHTML(hd As MSHTML.HTMLDocument)
Dim ht As MSHTML.HTMLTable, hr As MSHTML.HTMLTableRow, hc As MSHTML.HTMLTableCell
Dim it As Long, ir As Long, ic As Long
Debug.Print "-----------"
For Each ht In hd.All.tags("TABLE")
it = it + 1: ir = 0
Debug.Print "Table " & it
For Each hr In ht.rows
ir = ir + 1: ic = 0
Debug.Print " Row " & ir
For Each hc In hr.cells
ic = ic + 1
Debug.Print " Cell " & ic & " : " & hc.innerText
Next hc
Next hr
Next ht
End Sub
-----------
Table 1
Row 1
Cell 1 : Ящик
Cell 2 : Дата
Cell 3 : Кб
Cell 4 : Писем
Cell 5 : Max,Кб
Row 2
Cell 1 : adm@mail.ru
kuhtiov писал(а):Все равно логику не понял, как происходит парсинг.
FireFenix писал(а):Парсинг или регулярки нужны для 2го метода, а если у нас класс или браузер создаёт DOM, то мы можем работать с html элементами через DOM как с набором классов, что и делает товарищ Andrey Fedorov
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 96