Код - это почти то, что я получил после небольшого онлайн-исследования.Пожалуйста, не стесняйтесь редактировать и предлагать любые изменения.У меня были следующие два вопроса: 1. Окно Internet Explorer открывается, хотя я не использовал IE.visible = True
.Можете ли вы помочь, если что-то не так.2. Во-вторых, код выдает ошибку «Ошибка во время выполнения» -2147467259 (80004005) ':
Ошибка автоматизации
Неуказанная ошибка` Какие изменения я могу сделать, чтобы ее избежать.
Пожалуйста, прокомментируйте, если синтаксис также неправильный.
Я думал об использовании элемента XML, но мне нужны не уникальные данные classname, id
, и я не смог использовать `getElementsByTagName () (Number) 'в XML-методе очистки веб-страниц, если это возможно, пожалуйста, предложите что-то в этом направлении, так как я думаю, что тогда код станет чище.
Sub prog()
Dim ie As InternetExplorer
Dim webpage As HTMLDocument
Dim strr() As Variant
Dim num As Integer
num = 0
i = 0
Sheets.Add.Name = "New Sheet"
Set ie = New InternetExplorer
ie.navigate ("https://<link>")
Do While ie.readyState = 4: DoEvents: Loop
Set webpage = ie.Document
table_data = webpage.getElementsByTagName("tbody")(0)
mtlb1 = table_data.getElementsByTagName("tr")
mtlb2 = table_data.getElementsByTagName("tr")
For Each mtlb2 In table_data
num = num + 1
Next
ReDim strr(0 To num, 2)
For Each mtlb In table_data
Newt = mtlb.getElementsByTagName("td")(1)
strr(i, 1) = Newt.getElementsByTagName("a").innerText
Newt = mtlb.getElementsByTagName("td")(3)
strr(i, 2) = Newt.getElementsByTagName("a").innerText
i = i + 1
Next
For i = 0 To num - 1
Sheets("New Sheet").Range("A" + CStr(3 + i)).Value = strr(i, 1)
Sheets("New Sheet").Range("B" + CStr(3 + i)).Value = strr(i, 2)
Next
End Sub
Я хочу получить данные из таблицы тега tbody и только из нескольких столбцов, в частности, второго и четвертого.В дальнейшем я буду использовать список ссылок, чтобы открыть страницу и получить те же данные, основанные на веб-странице, содержащей около 2000-5000 ссылок.
На самом деле сначала я попытался скопировать всю таблицу в таблице Excel, а затем вытащитьнеобходимые данные, но это было слишком медленно, так как я узнал, что для такого способа программа выполняет миллиарды задач, когда больших нет.ссылки должны быть открыты и скопированы снова и снова.