2016-07-05 6 views
0

Это может быть длинный участок, но мое исследование никуда не привело меня!Word VBA Website Scrapping

В настоящее время мы запустили новую систему, основанную на сети, из-за стоимости существует несколько букв, основанных на словах, а не на срабатывании системы.

Я искал способы, которыми эти буквы могут быть автоматически заполнены из отходов в Интернете. Я смог успешно сделать это, используя «GetElementById».

ОДНАКО, с тех пор я обнаружил, что значения идентификатора изменяются для каждой доступной записи клиента, поэтому код, который я написал эффективно, работает только с одним клиентом.

Использование имен классов или любого другого варианта не работает, так как только идентификаторы были достаточно уникальными.

Есть ли другой способ, о котором каждый может думать? HTML структурирована следующим образом для конкретного элемента данных:

<div fieldref="PolicySummary.EffectiveDate" objectref="P379F514AC5994666A109BAB16FAF5A4F" id="f_P379F514AC5994666A109BAB16FAF5A4F8_2_1" name="f_P379F514AC5994666A109BAB16FAF5A4F8_2_1" class=" x-form-display-field">7/1/2016</div> 

Заранее спасибо

ответ

0

ли DIV элемент не всегда существуют в том же самом месте, вы не могли бы относиться к нему, как это

.getElementsByClassName(" x-form-display-field")(n) 

n - возникновение (первое = 0 секунд = 1 и т. Д.)

+0

Это может потенциально сработать, что лучше всего сделать, включая (n)? Может звучать глупый вопрос! – ChrisBrook

+0

Просмотрите исходный код и подсчитайте количество раз, когда появляется имя класса, когда оно находится на точном div, вам нужно использовать этот номер меньше 1. getElementsByClassName() возвращает массив, поэтому первый - это ключ 0 – xn1

+0

Итак, пользователи будут используя IE8, так что я понимаю, что getElementsByClassName не поддерживается IE8, но querySelectorAll() есть, будет ли такая же логика работать здесь? – ChrisBrook