Полезная информация

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.
  • Форумы
  •  » iMacros
  •  » [РЕШЕНО] Проблема с сохранением данных с сайта в файл

№111-01-2017 12:34:33

inbev92
Участник
 
Группа: Members
Зарегистрирован: 11-01-2017
Сообщений: 8
UA: Chrome 55.0

[РЕШЕНО] Проблема с сохранением данных с сайта в файл

Доброго времени, уважаемые.

2 дня назад появилась надобность в скрипте, и начал разбираться в imacros. Но так как я зашел в тупик и не могу догнать в чем проблема, прошу помощи у вас.

Суть задачи:

Имеется два файла. order.txt, который содержит ссылки вида:

скрытый текст

Выделить код

Код:

https://lk.********.org/order/120019
https://lk.********.org/order/120021
https://lk.********.org/order/120022
https://lk.********.org/order/120027
https://lk.********.org/order/120033
https://lk.********.org/order/120034
https://lk.********.org/order/120042
https://lk.********.org/order/120044
https://lk.********.org/order/120045


И есть файл вывода 111.txt.
Скрипт должен взять ссылку из файла ордер, открыть её, скопировать определенную информация с сайта и сохранить её в файл 111тхт.
На сайте нужно извлечь Имя и эмеил заказчика:
скрытый текст
RI5kZGBGMl0.jpg

и сохранить их в файл, с каким либо разделителем.

Для начала, я пытаюсь написать скрипт чтобы оно один раз его извлекало, а потом уже зациклить, но столкнулся с не понятной мне проблемой.
Мой скрипт выглядит следующим образом:

скрытый текст

Выделить код

Код:

SET !DATASOURCE C:\iMacros\Datasources\order.txt
SET !EXTRACT {{!COL1}}
TAB OPEN
TAB T=2
URL GOTO={{!COL1}}
TAG POS=1 TYPE=SPAN ATTR=class:o-user-info  EXTRACT=SPAN
SAVEAS TYPE=EXTRACT FOLDER=C:\iMacros\Datasources\ FILE=111.txt
TAB CLOSE


код публикуется в тегах code внутри спойлера
и в итоге в файле 111.тхт я получаю такой результат:
скрытый текст
"https://lk.*****/order/120019","Заказчик: Татьяна,Заказчик: Татьяна,L_***_A@mail.ru(Заказчик: Татьяна,Заказчик: Татьяна,L_***_A@mail.ru(Заказчик: Татьяна,Заказчик: Татьяна,L_***_A@mail.ru(4/ 9)"

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

InfSub

Отсутствует

 

№211-01-2017 12:45:22

EverythingForYou
Забанен
 
Группа: Members
Зарегистрирован: 05-11-2016
Сообщений: 65
UA: Yandex 16

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

Если копировать весь SPAN, тогда нужно отбирать ссылку регулярным выражением. Проще, на мой взгляд, EXTRACT=HREF.

Насчет циклов: в iMacros есть loop - количество циклов, которое можно указать перед воспроизведением. Так же, можно воспользоваться циклом for() от JavaScript.

Отсутствует

 

№311-01-2017 12:52:52

inbev92
Участник
 
Группа: Members
Зарегистрирован: 11-01-2017
Сообщений: 8
UA: Chrome 55.0

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

EverythingForYou пишет

Если копировать весь SPAN, тогда нужно отбирать ссылку регулярным выражением. Проще, на мой взгляд, EXTRACT=HREF. Насчет циклов: в iMacros есть loop - количество циклов, которое можно указать перед воспроизведением. Так же, можно воспользоваться циклом for() от JavaScript.

Спасибо за ответ.
Как раз когда оформлял пост, заметил свою ошибку. Я считываю весь <SPAN> но адрес то у меня находится в <A>.

А как их можно совместить, чтобы имя брало со спан, ставило разделитель любой, и добавляло эмеил из хреф?
Так же, не могу понять как убрать ссылку из первого файла, её так же извлекает во второй файл. Насколько я могу понимать, мне после 5-й строчки нужно как то очистить переменную EXTRACT?

Да, зацикливать я буду с помощью цикла for() от JavaScript.

Отсутствует

 

№411-01-2017 14:44:04

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 55.0
Веб-сайт

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

inbev92 пишет

SET !EXTRACT {{!COL1}}

зачем? или ссылка на страницу должна быть в итоговом файле?

inbev92 пишет

EXTRACT=SPAN

нет такого параметра у extract'a, читайте

inbev92 пишет

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

скрытый текст

Выделить код

Код:

iimPlayCode(`
    SET !DATASOURCE C:\iMacros\Datasources\order.txt
    TAB OPEN
    TAB T=2
    URL GOTO={{!COL1}}
    TAG POS=1 TYPE=SPAN ATTR=class:o-user-info EXTRACT=HTM
    TAB CLOSE
`);
var str=iimGetExtract();
var rx=/:\s(.*?),\s<a[^>]+>(.*?)</i;
str=str.match(rx);
str.shift();
str=str.join('[EXTRACT]');
iimPlayCode(`
    SET !EXTRACT ${str}
    SAVEAS TYPE=EXTRACT FOLDER=C:\\iMacros\\Datasources\\ FILE=111.txt
`);


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№511-01-2017 16:09:22

EverythingForYou
Забанен
 
Группа: Members
Зарегистрирован: 05-11-2016
Сообщений: 65
UA: Yandex 16

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

inbev92 пишет

Я считываю весь <SPAN> но адрес то у меня находится в <A>.

скрытый текст

Выделить код

Код:

window.document.getElementsByClassName('o-user-info')[здесь_указывать_элемент_массива_по_счету].getElementsByTagName('a')[0].getAttribute('href');

Отредактировано EverythingForYou (11-01-2017 16:10:00)

Отсутствует

 

№611-01-2017 16:12:16

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 55.0
Веб-сайт

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

EverythingForYou

inbev92 пишет

На сайте нужно извлечь Имя и эмеил заказчика

так что предполагаю, что href (ссылка) тут совсем не к чему

Отредактировано InfSub (11-01-2017 16:15:48)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№711-01-2017 16:16:45

EverythingForYou
Забанен
 
Группа: Members
Зарегистрирован: 05-11-2016
Сообщений: 65
UA: Yandex 16

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

InfSub пишет

так что предполагаю, что href (ссылка) тут совсем не к чему

Тогда, скорее всего, так:

скрытый текст

Выделить код

Код:

var info = window.document.getElementsByClassName('o-user-info')[здесь_указывать_элемент_массива_по_счету].getElementsByTagName('a')[0].innerHTML;

Отсутствует

 

№811-01-2017 16:18:29

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 55.0
Веб-сайт

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

EverythingForYou пишет

скорее всего, так

в span'e находится имя и другая инфа, так что имя все равно придется извлекать регуляркой и соответственно брать все содержимое span'a


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№911-01-2017 16:21:55

EverythingForYou
Забанен
 
Группа: Members
Зарегистрирован: 05-11-2016
Сообщений: 65
UA: Yandex 16

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

InfSub пишет
EverythingForYou пишет

скорее всего, так

в span'e находится имя и другая инфа, так что имя все равно придется извлекать регуляркой и соответственно брать все содержимое span'a

Точно! Не заметил имя. Думал, что оно закрашено вместе с email'ом в теге <a>.

Отсутствует

 

№1011-01-2017 16:39:35

inbev92
Участник
 
Группа: Members
Зарегистрирован: 11-01-2017
Сообщений: 8
UA: Chrome 55.0

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

InfSub пишет

зачем? или ссылка на страницу должна быть в итоговом файле?

таким образом я беру первую ссылку из файла. В итоговом не должна. Разве не так это делается?

По поводу Вашего кода, спасибо, я практически разобрался как он работает, но при компиляции ошибку выдало:

TypeError: str is null, line 12 (Error code: -991)

Я весь Ваш код поместил в файл с расширением .js и запустил в imacros.

Подскажете в чем дело?

Отсутствует

 

№1111-01-2017 17:36:06

EverythingForYou
Забанен
 
Группа: Members
Зарегистрирован: 05-11-2016
Сообщений: 65
UA: Yandex 16

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

inbev92 пишет

Подскажете в чем дело?

Попробуйте поменять одиннадцатую строчку:

скрытый текст

Выделить код

Код:

str=str.match(rx).join('');

Отредактировано EverythingForYou (11-01-2017 17:36:24)

Отсутствует

 

№1211-01-2017 18:15:58

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 55.0
Веб-сайт

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

EverythingForYou
это приведет к мусору (полному тексту из span) плюс искомый текст

inbev92

добавьте после:

Выделить код

Код:

var str=iimGetExtract();


строку:

Выделить код

Код:

alert(str);


и покажите ее вывод, лучше текстом а не скрином
или дайте ссылку на страницу

Добавлено 11-01-2017 18:21:31


варианта ошибки - 2:
- либо extract не сработал (т.е. на странице не найден объект)
- либо, регулярное выражение не совпало с текстом (т.к. писал его исходя из текста на скрине и мог чего-то не учесть)

Добавлено 11-01-2017 18:26:37


inbev92 пишет

таким образом я беру первую ссылку из файла.

выбор номера строки делается с помощью:

Выделить код

Код:

SET !DATASOURCE_LINE номер_строки


а командой:

Выделить код

Код:

SET !EXTRACT {{!COL1}}


вы передаете значение из первой колонки в переменную {{!EXTRACT}}
в результате, вы получаете в EXTRACT'e в первом столбце - ссылку, во втором содержимое span'a
по этому я и спросил, зачем вам ссылка в результирующем файле

Отредактировано InfSub (11-01-2017 18:30:05)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№1311-01-2017 19:56:39

inbev92
Участник
 
Группа: Members
Зарегистрирован: 11-01-2017
Сообщений: 8
UA: Chrome 55.0

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

InfSub пишет

и покажите ее вывод, лучше текстом а не скрином

результат текстом не могу показать, ибо текста нету. Результат alert-а и ошибку приведу ниже скриншотом

скрытый текст
7eeuqxqvyM8.jpg

Во время выполнения скрипта, вкладка с сайтом не открылась.

UPD

вот пример с другой ссылки:

скрытый текст

Выделить код

Код:

<span class="o-user-info">Заказчик: Ирина, <a href="/order/?search=alis_fox%40mail.ru"> alis_fox@mail.ru</a> (<b><font color="green">1</font> / 2</b>)</span>


Ещё возможен такой вариант:

скрытый текст

Выделить код

Код:

<span class="o-user-info">Заказчик: Егоров Борис, <a href="/order/?search=248435395"> 248435395</a> (<b><font color="green">3</font> / 3</b>)</span>


В данном случае, вместо email будет id заказчика. Его так же нужно извлекать в таком виде как он есть, т. е. просто цифры.

Отредактировано inbev92 (11-01-2017 20:02:04)

Отсутствует

 

№1411-01-2017 20:08:14

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 55.0
Веб-сайт

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

отключите alertfox, или вы с ним работаете?
проблема в нем,судя по ошибке


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№1511-01-2017 21:00:21

inbev92
Участник
 
Группа: Members
Зарегистрирован: 11-01-2017
Сообщений: 8
UA: Chrome 55.0

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

InfSub пишет

отключите alertfox, или вы с ним работаете?

Честно говоря, я пользуюсь хромом. Мозилла чистая, ничего кроме аймакрос не установлено. А что такое alertfox я даже и не знаю.

InfSub пишет

- либо extract не сработал (т.е. на странице не найден объект)

Мне почему-то кажется что проблема в этом, так как при выполнении скрипта, даже новая вкладка не открылась.
Я пробовал запускать кусочек скрипта:

скрытый текст

Выделить код

Код:

SET !DATASOURCE C:\iMacros\Datasources\order.txt
TAB OPEN
TAB T=2
URL GOTO={{!COL1}}
TAG POS=1 TYPE=SPAN ATTR=class:o-user-info  EXTRACT=HTM
TAB CLOSE
SAVEAS TYPE=EXTRACT FOLDER=C:\\iMacros\\Datasources\\ FILE=111.txt


но в данном случае результат получается таков:
скрытый текст
<span class="o-user-info" style="outline: 1px solid blue;">Заказчик: Татьяна, <a href="/order/?search=L_Tane4ka_A%40mail.ru"> L_Tane4ka_A@mail.ru</a> (<b><font color="green">4</font> / 9</b>)</span>

Отредактировано inbev92 (11-01-2017 21:02:50)

Отсутствует

 

№1611-01-2017 21:22:41

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 55.0
Веб-сайт

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

inbev92
какая версия iMacros?


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№1711-01-2017 21:45:07

inbev92
Участник
 
Группа: Members
Зарегистрирован: 11-01-2017
Сообщений: 8
UA: Chrome 55.0

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

InfSub пишет

какая версия iMacros?

Последняя. Или вам номер нужен?

Отсутствует

 

№1811-01-2017 22:30:52

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 55.0
Веб-сайт

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

inbev92
установите 8.9.3 и отключите обновление imacros'a
ссылки на все версии есть в FAQ раздела iMacros


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№1912-01-2017 02:11:47

inbev92
Участник
 
Группа: Members
Зарегистрирован: 11-01-2017
Сообщений: 8
UA: Chrome 55.0

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

InfSub пишет

установите 8.9.3

Я не знаю, "то ли я тупой, то ли лыжи не едут". В упор 8.9.3 версии не вижу

скрытый текст
4uR-UOYH-Os.jpg

Установил 8.9.6, пробую запустить скрипт, выдает ошибку:
скрытый текст
TypeError: iMacros.player is undefined, line -491 (Error code: -991)

Отсутствует

 

№2012-01-2017 03:15:48

inbev92
Участник
 
Группа: Members
Зарегистрирован: 11-01-2017
Сообщений: 8
UA: Chrome 55.0

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

В общем, установил я версию 8.9.7
Немного подправил код, и вот, что у меня вышло:

скрытый текст

Выделить код

Код:

SET !DATASOURCE C:\iMacros\Datasources\order.txt
SET !DATASOURCE_LINE {{!LOOP}}
ADD !EXTRACT {{!COL1}}
TAB OPEN
TAB T=2
URL GOTO={{!COL1}}
SET !EXTRACT NULL
TAG POS=1 TYPE=SPAN ATTR=class:o-user-info  EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=C:\iMacros\Datasources\ FILE=111.txt
TAB CLOSE


Результат 5-ти циклов:
скрытый текст
"Заказчик: Татьяна,  L_Ta***ka_A@mail.ru (4 / 9)"
"Заказчик: Татьяна,  L_Ta***ka_A@mail.ru (4 / 9)"
"Заказчик: Татьяна,  L_Ta***ka_A@mail.ru (4 / 9)"
"Заказчик: Анастасия,  as***l@bk.ru (1 / 4)"
"Заказчик: Руслан,  alena****eeva1@mail.ru (9 / 10)"

Повторы приемлемы, есть случаи, когда заказчики в ссылках повторяются.

Формат вывода меня устроит, я в notepad++ приведу к виду, который мне нужен.

Выражаю ОГРОМНУЮ благодарность всем участникам переписки, в частности InfSub, что помогли мне разобраться и добиться результата.

P.S.

Пробовал зациклить через js, но в итоге у меня просто счетчик считает, и дальше команды не выполняются:

скрытый текст

Выделить код

Код:

for (i=1;i<=8710;i++){
var macro; 
macro = "CODE:"; 
macro += "SET !DATASOURCE C:\iMacros\Datasources\order.txt" + "\n";
macro += "SET !DATASOURCE_LINE "+i+ "\n";
macro += "ADD !EXTRACT {{!COL1}}" + "\n"; 
macro += "TAB OPEN" + "\n"; 
macro += "TAB T=2" + "\n"; 
macro += "URL GOTO={{!COL1}}" + "\n"; 
macro += "SET !EXTRACT NULL" + "\n"; 
macro += "TAG POS=1 TYPE=SPAN ATTR=class:o-user-info  EXTRACT=TXT" + "\n"; 
macro += "SAVEAS TYPE=EXTRACT FOLDER=C:\iMacros\Datasources\ FILE=111.txt" + "\n"; 
macro += "TAB CLOSE" + "\n"; 
iimPlay(macro) ;
}

Отсутствует

 

№2112-01-2017 08:45:25

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 55.0
Веб-сайт

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

inbev92 пишет

macro += "ADD !EXTRACT {{!COL1}}" + "\n";

и

inbev92 пишет

macro += "SET !EXTRACT NULL" + "\n";

удалите, говорил же, зачем это здесь?
код приведенный мной в начале обсуждения у вас не работает на 8.9.7?

inbev92 пишет

в итоге у меня просто счетчик считает, и дальше команды не выполняются:

так сравните строку save as в js из моего поста и из вашего


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№2212-01-2017 10:35:32

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 55.0
Веб-сайт

Re: [РЕШЕНО] Проблема с сохранением данных с сайта в файл

inbev92 пишет

Я не знаю, "то ли я тупой, то ли лыжи не едут". В упор 8.9.3 версии не вижу

писал с телефона, опечатался, имелась ввиду действительно 8,9,7


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 
  • Форумы
  •  » iMacros
  •  » [РЕШЕНО] Проблема с сохранением данных с сайта в файл

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]