Извлечение данных с помощью imacros

Мне нужен скрипт imacros для извлечения всех данных с этого веб-сайта http://www.gibsondunn.com/Search/Pages/LawyersSearch.aspx?k=('Фамилия'~A*). Я вручную нажимаю на ссылку с алфавитом и подсчитываю результат, затем ввожу максимальный цикл для воспроизведения цикла, но это действительно занимает много времени, и я пытаюсь найти в Google, но безуспешно и пытаюсь найти здесь. Надеюсь, кто-нибудь поможет мне с этим.

Вот и скрипт создаю через запись imacros.

VERSION BUILD=8871104 RECORDER=FX
SET !TIMEOUT_PAGE 20
SET !EXTRACT_TEST_POPUP NO
SET !ERRORIGNORE YES

TAB T=1
TAG POS={{!LOOP}} TYPE=A ATTR=HREF:/lawyers/* EXTRACT=HREF
TAB OPEN NEW
TAB T=2
URL GOTO={{!EXTRACT}}
WAIT SECONDS=2

'data text
SET !EXTRACT {{!URLCURRENT}}
TAG POS=1 TYPE=H1 ATTR=CLASS:gd_title EXTRACT=TXT
TAG POS=4 TYPE=SPAN ATTR=* EXTRACT=TXT
TAG POS=13 TYPE=DIV ATTR=* EXTRACT=TXT
TAG POS=15 TYPE=DIV ATTR=* EXTRACT=TXT
TAG POS=19 TYPE=DIV ATTR=* EXTRACT=TXT
TAG POS=20 TYPE=DIV ATTR=* EXTRACT=TXT
TAG POS=21 TYPE=DIV ATTR=* EXTRACT=TXT 
TAG POS=22 TYPE=DIV ATTR=* EXTRACT=TXT
TAG POS=23 TYPE=DIV ATTR=* EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=gibsondunn.csv

tab close
TAB T=1    

Очень ценю вашу помощь.


person michael    schedule 25.11.2014    source источник


Ответы (1)


Без использования JavaScript Scripting Interface самый простой способ облегчить вашу задачу — избавиться от подсчета количества строк, которые вам нужно извлечь. Ниже код, который запрашивает это. Запишите этот макрос в отдельный .iim-файл и, конечно же, введите полученное значение вручную на цикле max перед запуском своего.

SET !EXTRACT_TEST_POPUP NO
URL GOTO=javascript:{var<SP>els=window.document.getElementsByTagName("td");var<SP>n=0;for(i=0;i<els.length;i++){if(els[i].className=="gd_nameColumnData")n++}n;}
URL GOTO=javascript:{window.history.back()}
TAG POS=1 TYPE=HTML ATTR=* EXTRACT=TXT
BACK
PROMPT {{!EXTRACT}}
person Shugar    schedule 26.11.2014