Url goto javascript: How to get the browser to navigate to URL in JavaScript

iMacros: URL GOTO = null, пропустить?

У меня есть длинная последовательность кода, которая посещает веб-сайт, входит в систему, публикует содержимое из .csv и сохраняет информацию, выходит из системы и посещает следующий веб-сайт. Это все жестко запрограммированных .

Какой самый простой способ пропустить части кода? У меня 60 сайтов. Пример:

Прямо сейчас , я не хочу, чтобы макрос посещал сайт 5, 6, 7, 9, 10, 22, 26, 35, 40, 45, 50, 59.
Через час , я не хочу, чтобы макрос посещал сайт 4, 5, 9, 10, 19, 30, 31, 49 и 50.

Пример того, как выглядит мой код:

 ' Первый сайт
ВКЛАДКА Т=1
УСТАНОВИТЬ !ИСТОЧНИК ДАННЫХ test.csv
УСТАНОВИТЬ !DATASOURCE_COLUMNS 2
УСТАНОВИТЬ !ЦИКЛ 2
УСТАНОВИТЬ !DATASOURCE_LINE {{!LOOP}}
УСТАНОВИТЬ !ОШИБКА ДА
УСТАНОВИТЬ !TIMEOUT_PAGE 2
URL-адрес GOTO=http://liu.com
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:mortalSubmit ATTR=NAME:title CONTENT={{!COL1}}
TAG POS=1 TYPE=TEXTAREA FORM=ID:mortalSubmit ATTR=ID:post CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:mortalSubmit ATTR=ID:submit
ДОБАВИТЬ !ИЗВЛЕКАТЬ {{!URLCURRENT}}
ДОБАВИТЬ !ИЗВЛЕКАТЬ {{!COL1}}
ДОБАВИТЬ !ИЗВЛЕКАТЬ {{!COL2}}
TAG POS=1 TYPE=DIV ATTR=CLASS:успешно EXTRACT=TXT
TAG POS=1 TYPE=DIV ATTR=CLASS:error EXTRACT=TXT
СОХРАНИТЬ КАК ТИП=ИЗВЛЕКАТЬ ПАПКУ=* ФАЙЛ=report.
csv TAG POS=2 TYPE=A ATTR=TXT:Выход из системы ПОДОЖДИТЕ СЕКУНД = 3 ' Второй веб-сайт ВКЛАДКА Т=1 УСТАНОВИТЬ !ИСТОЧНИК ДАННЫХ test.csv УСТАНОВИТЬ !DATASOURCE_COLUMNS 2 УСТАНОВИТЬ !ЦИКЛ 3 УСТАНОВИТЬ !DATASOURCE_LINE {{!LOOP}} УСТАНОВИТЬ !ОШИБКА ДА УСТАНОВИТЬ !TIMEOUT_PAGE 2 URL-адрес GOTO=http://kang.com/admin TAG POS=1 TYPE=A ATTR=TXT:Добавитьновый TAG POS=1 TYPE=INPUT:TEXT FORM=ID:combatSubmit ATTR=NAME:title CONTENT={{!COL1}} TAG POS=1 TYPE=TEXTAREA FORM=ID:combatSubmit ATTR=ID:post CONTENT={{!COL2}} TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:combatSubmit ATTR=ID:submit ДОБАВИТЬ !ИЗВЛЕКАТЬ {{!URLCURRENT}} ДОБАВИТЬ !ИЗВЛЕКАТЬ {{!COL1}} ДОБАВИТЬ !ИЗВЛЕКАТЬ {{!COL2}} TAG POS=1 TYPE=DIV ATTR=CLASS:updated EXTRACT=TXT СОХРАНИТЬ КАК ТИП=ИЗВЛЕКАТЬ ПАПКУ=* ФАЙЛ=report.csv TAG POS=2 TYPE=A ATTR=TXT:Выход ПОДОЖДИТЕ СЕКУНД = 3

Это отлично работает для меня.

Итак, как в приведенном выше примере сделать так, чтобы код пропускал первый веб-сайт и сразу переходил ко второму веб-сайту? Я знаю, что могу сделать первые части кода комментариями и изменить SET!LOOP с 3 на 2. Это работает, но я не могу сделать это с 60 веб-сайтами.

Я подумал…

У меня есть отдельный .csv с информацией об URL:

 URL, Имя
http://liu.com,LIU.COM
http://kang/admin.com,KANG.COM
 

А в коде:

 УСТАНОВИТЬ !ИСТОЧНИК ДАННЫХ urls.csv
' Первый веб-сайт
УСТАНОВИТЬ !ЦИКЛ 2
URL-адрес GOTO={{!COL1}}
' Второй веб-сайт
УСТАНОВИТЬ !ЦИКЛ 3
URL-адрес GOTO={{!COL1}}
 

И как-нибудь сделать IF col1 = null GOTO COMMAND LINE x, что ли! Или просто наберите dasjdkaskasdasasdasg.com в col1 и дайте ему пройти, хотя это будет пустой тратой времени. Существует ли лучшее решение?

SET !LOOP также проблема. Можно ли сделать первый !SETLOOP 2 и все последующие !SETLOOP предыдущим+1

С наилучшими пожеланиями,

Лю Канг

ОБНОВЛЕНО: Невозможно достичь этого только с помощью IIM. Долго пытался с EVAL поднять SETLOOP, но это очень ограничено. Смотрите обновленный комментарий.

Резюме из комментария:

  • Разделил код на один . iim-файл для каждого веб-сайта
  • Все .iim-файлы имеют уникальный SETLOOP и импортируют данные из одного и того же .CSV
  • Файл Javascript выполняет каждый файл .iim
  • Работа над решением, позволяющим заставить Javascript выполнять файлы .iim только тогда, когда COL3 в .CSV содержит данные, теперь проблема заключается в том, чтобы заставить Javascript импортировать данные из .CSV, когда jQuery не разрешен при использовании iMacros.

Метод Page.goto() | Puppeteer

Версия: 19.3.0
Подпись:​
 class Page { 
goto(
url: string,
options?: WaitForOptions & {
referer?: string;
}
): Promise;
}
Параметр Тип Описание
URL строка URL для перехода к странице URL-адрес должен включать схему, например. https://
options WaitForOptions & { referer?: string; } (необязательно) Параметр навигации

Возвращает:

Promise

Обещание, которое разрешается в ответ основного ресурса.

В случае нескольких перенаправлений навигация будет разрешена с ответом последнего перенаправления.

Аргумент options может иметь следующие свойства:

  • тайм-аут : Максимальное время навигации в миллисекундах, по умолчанию 30 секунд, введите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов Page.setDefaultNavigationTimeout() или Page.setDefaultTimeout().

  • waitUntil : Когда считать навигацию успешной, по умолчанию загрузить . Учитывая массив строк событий, навигация считается успешной после запуска всех событий. Событий может быть:
    load : считается, что навигация завершена, когда запускается событие загрузки.
    domcontentloaded : считается, что навигация завершена при запуске события DOMContentLoaded.

    networkidle0 : считать навигацию завершенной, когда имеется не более 0 сетевых подключений в течение как минимум 500 мс.
    networkidle2 : считать навигацию завершенной, когда имеется не более 2 сетевых подключений в течение как минимум 500 мс.

  • referer : Значение заголовка Referer. Если он предоставлен, он будет иметь преимущество перед значением заголовка реферера, установленным page.setExtraHTTPHeaders().

page.goto выдаст ошибку, если:

  • есть ошибка SSL (например, в случае самозаверяющих сертификатов). — целевой URL-адрес недействителен. — превышено время ожидания во время навигации. — удаленный сервер не отвечает или недоступен. — не удалось загрузить основной ресурс.

page.goto не будет выдавать ошибку, когда удаленный сервер возвращает какой-либо действительный код состояния HTTP, включая 404 «Не найдено» и 500 «Внутренняя ошибка сервера». Код состояния для таких ответов можно получить, вызвав response.status().

ПРИМЕЧАНИЕ. page.goto либо выдает ошибку, либо возвращает ответ основного ресурса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *