Хочу из него достать список всех продуктов в ексель. Как бы список уже достал через веб запрос, но еще хотелось бы чтоб названия были с гиперссылками на страницы в интернете. То есть так, если выделить таблицу, скопировать и вставить в ексель. Кто может подсказать обязательно надо парсить исходный код в поиске гиперссылок или есть решения попроще?
Вот отпарсенный ответ. Вроде ничего не пропустил, гарантий давать не могу. http://dropmefiles.com/8okpu Слишком объемный файл.
UPD: Похоже я все-таки неправильно обработал в паре-тройке мест. Все из-за макроса переноса данных. Вот это правильный файл: http://dropmefiles.com/YBfjs
Dima S написал: хотелось бы чтоб названия были с гиперссылками... к сожалению не знаком с HtmlDocument (
не знаю, подойдёт ли... но я использовала такой код для взятия ссылок... только линк свой попробуйте... ну и, наверно, вам выборочные линки нужны - там уж сами выбирайте
Код
Public Function UseHTML(Url$) As Variant
Dim XMLHTTP, XX
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
With XMLHTTP
.Open "Get", Url$, "False"
.send
If .statustext = "OK" Or .Status = 200 Then
XX = Split(.responsetext, "</head>") 'по совету от Doober: отрезать head - там самая муть - чтобы ускорить загрузку
If UBound(XX) = 0 Then Exit Function
Code_Page = "<html>" & XX(1)
'Debug.Print .responsetext
Else: MsgBox .statustext & " " & .Status
End If
End With
UseHTML = Code_Page
Set XMLHTTP = Nothing
End Function
Sub UseHTML_LinksGet()
Dim XMLHTTP As Variant, Url$, PZ As Integer, Arr As Variant
Dim S As String, T
Url$ = "http://www.cmegroup.com/trading/fx/g10/british-pound_quotes_settlements_options.html" 'линк запроса
Sheets("Лист1").UsedRange.Clear
S = UseHTML(Url$)
Set HTML = CreateObject("htmlfile")
HTML.Write S
'http://www.excelworld.ru/forum/10-12885-3
'alex77755 Суббота, 22.11.2014, 14:18 | Сообщение № 57
'Список ссылок
For Each TB In HTML.Links
j = j + 1
If Len(TB.innertext) > 0 Then
ActiveSheet.Hyperlinks.Add Anchor:=Cells(j, 1), Address:= _
Url$ & Replace(TB.href, "about:", ""), _
TextToDisplay:=TB.innertext
Cells(j, 2) = Url$ & Replace(TB.href, "about:", "")
End If
Next
End Sub
P.S. а в сообщении№58 (по линку закоментированному в коде) - пример использования Select Case (может подойдёт?)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Что такое DOM - мне кажется начинать можно отсюда (если я не путаю понятия - уж больно много слов)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)