2013-07-18 3 views
0

Я использую excel с VBA, чтобы открыть страницу и извлечь некоторую информацию и поместить ее в мою базу данных. После некоторых исследований я понял, что для открытия IE явно требуется больше времени, и его можно достичь с помощью XmlHTTP. Я использую XmlHTTP, чтобы открыть веб-страницу, как было предложено в моем другом question. Однако при использовании IE я смог перемещаться по тегам div. Как я могу сделать то же самое в XmlHTTP?Excel с VBA - XmlHttp для использования div

Если я использую IE для открытия страницы, я делаю что-то вроде ниже, чтобы перемещаться по нескольким элементам div.

Set openedpage1 = iedoc1.getElementById("profile-experience").getElementsbyClassName("title") 
For Each div In openedpage1 
--------- 

Однако, с XmlHttp, я не могу сделать, как показано ниже.

For Each div In html.getElementById("profile-experience").getElementsbyClassName("title") 

Я получаю сообщение об ошибке, как объект не поддерживает это свойство или метод.

+0

Вы должны показать свой текущий код. –

+0

[Этот вопрос] (http://stackoverflow.com/q/9995257/53614) может быть полезным – barrowc

+0

@Ramesh Если вы можете поделиться ссылкой, я попробую это. – Santosh

ответ

0

Посмотрите на this answer, что я опубликовал для другого вопроса, так как это близко к тому, что вы ищете. Таким образом, вы:

  1. Создать Microsoft.xmlHTTP объект

  2. Используйте XmlHttp объект, чтобы открыть свой адрес

  3. Загрузите ответ в XML в DOMDOcument объект

Оттуда вы можете получить набор XMLNodes, выбрать элементы, атрибуты и т. Д. Из DOMDocument

+0

Разве это не способ создания DOMDocument на основе XML? Будет ли он работать для HTML? Я не думаю, что так будет - я могу ошибаться. Я думаю, вам придется сначала сохранить HTML-код и повторно проанализировать его. –

+0

Используйте валидатор, подобный W3C, один [здесь] (http://validator.w3.org/#validate_by_uri), чтобы проверить, правильно ли сформирована страница XHTML, прежде чем пытаться импортировать в DOMDocument. Если он плохо сформирован, вам потребуется совсем другой подход – barrowc

0

Объект XMLHttp возвращает содержимое страницы в виде строки в responseText. Вам нужно будет проанализировать эту строку, чтобы найти нужную вам информацию. Regex - вариант, но он будет довольно громоздким.

This page использует строковые функции (Mid, InStr) для извлечения информации из html-текста.

Возможно, возможно создать DOMDocument из полученного HTML (я считаю, что это так), но я не преследовал этого.

Смежные вопросы