понедельник, июля 13, 2009

iMacros пример рабочего скрипта.



Для примера приведу 3 скрипта для propeller.com: подписка статей, голосование за 1 статью множеством пользователей, голосование одним пользователем за множество статей.

Первый нах. Для особливо непонятливых распишу. Идем на пропеллер, логинимся, жмем добавить историю (стой! не бросай читать) и записываем процедуру сабмита статьи с помощбю кнопки (какой бы вы думали?) "Запись" до момента нажатия на кнопку "Check my story" в пропеллере. Тут жмем остановить запись и открываем файл "#Current.iim" на редактирование, в нем примерно следующее:

VERSION BUILD=6030318 RECORDER=FX
TAB T=1
URL GOTO=http://www.propeller.com/submit
'Это урл
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyUrl CONTENT=http://sdfsdf
'Это название статьи
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTitle CONTENT=dsfsadfadsf
'Это текст статьи
TAG POS=1 TYPE=TEXTAREA FORM=NAME:submitstory ATTR=ID:storyText CONTENT=sdsafdsfasdf
'Это канал (из списка, выбирается по номерам)
TAG POS=1 TYPE=SELECT FORM=NAME:submitstory ATTR=ID:storyChannel CONTENT=$31
'Это тэги
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTags CONTENT=dasfadsfadsf
'Это нажимание на кнопку сабмита
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:submitstory ATTR=ID:storySubmitButtonTop&&VALUE:CheckMyStory

Создаем папку(в имакросе) propeller например. Сохраняем это чудо под каким-нить названием, например propeller_post_article.iim.

Далее нужно создать какой-нить файл с данными для статей и поместить его в директорию "datasources" iMacros'а (она в опциях у вас прписана).

Например назовем его propeller_articles.csv, а в него кладем такой текст:

"http://a-xyle.com","A xyle: iMacros","Seo blog for you","26","seo, blog, xyle, ti, palish"

Тут по порядку идут все нужные данные для полей, которые есть выше в коде. Открываем сохраненный ранее скрипт и вписываем туда после "TAB T=1" что то типа

'Подключаем файл с данными о статье
CMDLINE !DATASOURCE propeller_articles.csv
'Количество полей в файле - в нашем случае 5
SET !DATASOURCE_COLUMNS 5
'строка с которой будет начинатся перебор, ну с первой и надо начинать
SET !LOOP 1
'Команда счетчика вообщем, при увеличении LOOP будет переходит на следующую строку
SET !DATASOURCE_LINE {{!LOOP}}

Все тэги с аттрибутом INPUT в скрипте приводим к вот такому виду (COL'ы вместо явного указания данных для ввода, что означает соответствующий элемент из строки из файла данных):

'Это урл
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyUrl CONTENT={{!COL1}}
'Это название статьи
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTitle CONTENT={{!COL2}}
'Это текст статьи
TAG POS=1 TYPE=TEXTAREA FORM=NAME:submitstory ATTR=ID:storyText CONTENT={{!COL3}}
'Это канал (из списка, выбирается по номерам)
TAG POS=1 TYPE=SELECT FORM=NAME:submitstory ATTR=ID:storyChannel CONTENT=${{!COL4}}
'Это тэги
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTags CONTENT={{!COL5}}

Так как подписка в пропеллере осуществляется в 2 этапа то в конце надо добавить еще нажатие на кнопку "Submit this story", это так же можно записать и добавить в конец скрипта:

TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:submitstory ATTR=ID:storySubmitButtonTop&&VALUE:SubmitthisStory

Вот что мы получим в итоге:

VERSION BUILD=6030318 RECORDER=FX
TAB T=1
'Подключаем файл с данными о статье
CMDLINE !DATASOURCE propeller_articles.csv
'Количество полей в файле - в нашем случае 5
SET !DATASOURCE_COLUMNS 5
'строка с которой будет начинатся перебор, ну с первой и надо начинать
SET !LOOP 1
'Команда счетчика вообщем, при увеличении LOOP будет переходит на следующую строку
SET !DATASOURCE_LINE {{!LOOP}}
URL GOTO=http://www.propeller.com/submit
'Это урл
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyUrl CONTENT={{!COL1}}
'Это название статьи
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTitle CONTENT={{!COL2}}
'Это текст статьи
TAG POS=1 TYPE=TEXTAREA FORM=NAME:submitstory ATTR=ID:storyText CONTENT={{!COL3}}
'Это канал (из списка, выбирается по номерам)
TAG POS=1 TYPE=SELECT FORM=NAME:submitstory ATTR=ID:storyChannel CONTENT=${{!COL4}}
'Это тэги
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTags CONTENT={{!COL5}}
'Это нажимание на кнопку сабмита
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:submitstory ATTR=ID:storySubmitButtonTop&&VALUE:CheckMyStory
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:submitstory ATTR=ID:storySubmitButtonTop&&VALUE:SubmitthisStory

Все. Можно забить файл с историями и поставить на сабмит на ночь, например (хотя скорее всего бан схлопочете за такую массовость)), если добавить еще использование проксей и задержки, что мне здесь описывать лениво, читаем мануал (улыбаемся и машем))). Вообщем плясать от этого уже можно.

Вот еще пара скриптов в нагрузку, уже без всяких комментариев и т.п.

Голосование одним акком за несколько статей:

VERSION BUILD=6001001 RECORDER=FX
TAB T=1
'!!!SET ACCOUNTS DETAILS HERE!!!
SET !VAR1 username
SET !VAR2 password
'!!!SET URLS FILE HERE!!!
CMDLINE !DATASOURCE urls.csv
'Number of columns in the CSV file. This must be accurate!
SET !DATASOURCE_COLUMNS 1
SET !LOOP 1
'Increase the current position in the file with each loop
SET !DATASOURCE_LINE {{!LOOP}}
URL GOTO=https://www.propeller.com/signin/
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:nsform ATTR=NAME:alias CONTENT={{!VAR1}}
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUTASSWORD FORM=NAME:nsform ATTR=NAMEwd CONTENT={{!VAR2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:nsform ATTR=NAME:formsubmit&&VALUE:SignIn
URL GOTO={{!COL1}}
TAG POS=1 TYPE=A ATTR=TXT:Vote!
URL GOTO=http://www.propeller.com/signout

VAR1 - имя пользователя, VAR2 - пароль. В файле urls.csv лежат урлы статей по урлу на строку.

Голосование несколькими акками за одну статью:

VERSION BUILD=6001001 RECORDER=FX
TAB T=1
'!!!SET STORY URL HERE!!!
SET !VAR1 http://news.propeller.com/story/2008/03/18/evanescence-lyrics/
'!!!SET ACCOUNTS FILE HERE!!!
CMDLINE !DATASOURCE accs_prop.csv
'Number of columns in the CSV file. This must be accurate!
SET !DATASOURCE_COLUMNS 2
SET !LOOP 1
'Increase the current position in the file with each loop
SET !DATASOURCE_LINE {{!LOOP}}
FILTER TYPE=IMAGES STATUS=ON
URL GOTO=https://www.propeller.com/signin/
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:nsform ATTR=NAME:alias CONTENT={{!COL1}}
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:nsform ATTR=NAME:pwd CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:nsform ATTR=NAME:formsubmit&&VALUE:SignIn
URL GOTO={{!VAR1}}
TAG POS=1 TYPE=A ATTR=TXT:Vote!
WAIT SECONDS=3
URL GOTO=http://www.propeller.com/signout

VAR1 - урл статьи за которую голосовать. В файле accs_prop.csv должны лежать акки в формате username,password по одному на строку.

Источник

9 комментариев:

Анонимный комментирует...

Привет
Слушай, а как в аймакрос можно сделать так чтоб несколько сылок на странице открылись в новом окне?

Юрий комментирует...

А можете подсказать, как сделать так чтобы он реагировал (записывал) на нажатие клавиши таб TAB. А то реагирует только на клики мыши, но проблема в том что страница не всегда в одной позиции показывает и с мышью по XY выходит что не попадает по ссылке.

sbseo комментирует...

Тоже заинтересовало, как таб прикрутить. Неужели нет решения?

Анонимный комментирует...

It is extremely interesting for me to read that blog. Thanks for it. I like such topics and anything that is connected to this matter. I would like to read a bit more soon.

Best wishes
Steave Markson

Анонимный комментирует...

Распиши пожалуйста, как автопостинг на форумах организовать, чтобы можно было через определенный интервал постить на одних и тех же форумах нужный текст, собственно, задача - выкладывание ссылок на файлы с интервалом пару часов. Если будет работать - отблагодарю в вебманях

Semen комментирует...

Нужно написать несколько скриптов imacros за вознагражнение. Кто может пишите в аську 800129

seogrot комментирует...

Открыл для себя iMacros относительно недавно. Уже немного разобрался с работой, в чём от части помог и Ваш пример скрипта! Тоже записал несколько рабочих примеров макросов, посмотреть можно здесь http://seogrot.com/plagin-imacros-primery-makrosov-i-skriptov/, если кому-то пригодится буду рад.

New Cinema комментирует...

ОХХХ БРАТКИ. НЕ УДЕРЖАЛСЯ... ПОМОГЛИ С КОДОМ. СПАСИБО... ДВА ДНЯ МУЧЕНИЙ.......

Unknown комментирует...

Привет! Скажи пожалуйста как сделать так, чтобы макрос нажимал клавишу ENTER