Мои скрипты из папки My Scripts

Скрипты, которые не попадают ни в одну тему выше.
Ответить
Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Мои скрипты из папки My Scripts

Сообщение igvard » 04 сен 2010, 00:26

Решил поделится своими скриптами, которые накопились у меня в папке My Scripts.
Выкладываю только свои скрипты. На скрипты наших клиентов действует полная и безоговорочная конфиденциальность и гарантия их не использования в любых целях.

К сожалению не все скрипты рабочие, но думаю всё равно будут полезны.

Начнём с очень простого скрипта:

Код: Выделить всё

<?php
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

// navigate to google  
$browser->navigate("http://www.google.com");
// wait on browser
$browser->wait(1);

$input->set_value_by_name('q','хуман');
$button->click_by_name('btnG');

$browser->wait_for(30,1);

// Quit
$app->quit();
?>
Этот скрипт переходит на google вбивает в поисковое поле запрос "хуман" и нажимает на кнопку Поиск.
Последний раз редактировалось igvard 04 сен 2010, 00:36, всего редактировалось 1 раз.

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 00:35

С помощью этого скрипта я собирал наш help с сайта.

Код: Выделить всё

<?php
require("../Templates/xweb_human_emulator.php");

// папка куда писать результаты
$folder ="D:\\work\\help_en\\";
// имя файла
$name  = "functions";

// префиксы для получения текста
$prefix1="Edit ";
$prefix2 = "Вернуться к списку команд";
////////////////////////////////// доп функции ////////////////////////////////////////////////////////
// получить нужный текст
function parse_text($body_text,$pref1,$pref2)
{
  
   $ind = strpos($body_text,$pref1);
   $ind1 = strpos($body_text,$pref2,$ind);

   $res = substr($body_text, $ind+ strlen($pref1),$ind1-$ind-strlen($pref1));

   return $res;
}
// добавить в файл
function add_file($path,$page_body)
{
   $file=fopen($path,"a+");
    fputs($file,$page_body);
  
   // close out file
   fclose($file);
}
////////////////////////////////// выполнение скрипта ////////////////////////////////////////////////////////

for($i=11;$i<480;$i++)
{
   // navigate to google
   $browser->navigate("http://www.humanemulator.info/23");
   // wait on browser
   $browser->wait(1);  

   // переходим на страничку описания функции
   $anchor->click_by_number($i);
   $browser->wait_for(30,1);

   // получить текст документа
   $text = $webpage->get_document_body("false");
   // записать его в файл
   $textfile->write_file("c://1.txt",$text,0) ;
   // разобрать и найти нужный нам кусок
   $text=parse_text($text,$prefix1,$prefix2);

   // запишем в файл
   add_file($folder.$name.".txt" ,$text) ;
 }

// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 00:41

Пример работы с авторизацией.

Код: Выделить всё

<?php
// The following code is required to properly run Xedant.com Human Emulator
require("../Templates/xweb_human_emulator.php");

// navigate to форум
$browser->navigate("http://humanemulator.info/forum");
// wait on browser
$browser->wait(1);

// тут вы задаёте свои логин и пароль на наш форум
$browser->set_default_authorization("ваш_логин","ваш_пароль");

// navigate to форум
$browser->navigate("http://humanemulator.info/forum");
// wait on browser
$browser->wait(1);

// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 00:47

Функция генерации accept строки:

Код: Выделить всё

<?php
// The following code is required to properly run Xedant.com Human Emulator
require("../Templates/xweb_human_emulator.php");

// функция генерации логина
function generate_accept($len) 
{ 

$r = ""; 
$allowedSymbols = array("text/html", "image/png", "image/jpeg", "image/gif", "image/x-xbitmap","text/plain", "q=0.5", "text/html", "text/x-dvi", "q=0.8", "text/x-c","audio/*","q=0.2", "audio/basic","image/gif", "image/x-xbitmap", "image/jpeg", "image/pjpeg", "application/x-shockwave-flash", "application/vnd.ms-excel", "application/vnd.ms-powerpoint", "application/msword","*/*"); 

for ($i=0; $i<$len; $i++) 
{
   
   $rand=array_rand($allowedSymbols);
  
   $rand=array_rand($allowedSymbols);
   $r.=$allowedSymbols[$rand].","; 
}
$r  = substr($r,0,strlen($r)-1);
$r="Accept: ".$r.";";
return $r; 
} 

$browser->set_accept(generate_accept(rand(3,9)) );

// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 00:50

Вход в почту rambler и выбор текста с форматированием и без форматирования для написания письма.

Код: Выделить всё

<?php
// The following code is required to properly run Xedant.com Human Emulator
require("../Templates/xweb_human_emulator.php");

$browser->navigate('http://www.mail.rambler.ru ');
$browser->wait_for(240,1);

$input->set_value_by_name('login',тут ваш логин на rambler);

$input->set_value_by_name('passw','тут пароль');

// зайти в почту
$button->click_by_name('submit');
$browser->wait_for(240,1);

$anchor->click_by_inner_text('Написать письмо','true');
$browser->wait_for(240,1);

$anchor->click_by_inner_text('Текст с форматированием','true');
$browser->wait_for(240,1);

sleep(5);

$browser->enable_browser_message_boxes("false");

$anchor->click_by_inner_text('Текст без форматирования','true');
$browser->wait_for(240,1);

// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 00:55

Это что то элементарное по работе я yandex почтой.

Код: Выделить всё

<?php
// The following code is required to properly run Xedant.com Human Emulator
require("../Templates/xweb_human_emulator.php");

$browser->navigate('www.yandex.ru ');
$browser->wait_for(240,1);

$element->click_on_element_by_inner_text('логин');
$browser->wait_for(240,1);

$anchor->click_by_inner_text('Завести почтовый ящик','true');
$browser->wait_for(240,1);

$input->set_value_by_name('iname','xh');

$input->set_value_by_name('iname','ива');

$input->set_value_by_name('fname','фава');

$input->set_value_by_name('login','xhe');

$element->click_on_element_by_inner_text('@yandex.ru');
$browser->wait_for(240,1);

$button->click_by_name('done');
$browser->wait_for(240,1);

$input->set_value_by_name('passwd','simnar');

$input->set_value_by_name('passwd2','simnar');

$listbox->select_name_by_inner_name('hintq','2');

$input->set_value_by_name('hinta','Борщ');

$input->set_value_by_name('code','12774');

$btn->click_by_inner_text('Зарегистрировать');
$browser->wait_for(240,1);

$anchor->click_by_inner_text('Начать пользоваться Почтой','true');
$browser->wait_for(240,1);

$element->click_on_element_by_inner_text('Написать');
$browser->wait_for(240,1);

$element->click_on_element_by_inner_text('С оформлением');
$browser->wait_for(240,1);

$element->click_on_element_by_inner_text('Просто текст');
$browser->wait_for(240,1);

$browser->refresh();
$browser->wait_for(240,1);

// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 01:09

пример использования $browser->send_post_query функции:

Код: Выделить всё

<?php
// The following code is required to properly run Xedant.com Human Emulator
require("../Templates/xweb_human_emulator.php");

$content = 'tut u nas post';

$post = array(
    "title" => "urra",
    "elm" => $content,
    "tags" => "",
    "category" => "",
    "content" => $content,
    "varname" => $varname,
    $varname => $varvalue,
);
$post = http_build_query($post);

echo $browser->send_post_query("страница на которую передаём пост запрос", $post);

// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 01:21

пример в котором используеться работа с данными браузера, прокси и т.д.
для работы скрипта нужны файлы
c:\\useragent.txt, в котором 10 строчек с user agent строками
c:\\proxy.txt, в котором хранятся 10 проксей

Код: Выделить всё

<?php
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

for ($iproxy = 0; $iproxy <= 10; $iproxy++) 
{
// задаём данные браузера
$user_agent = $textfile->get_line_from_file("c:\\useragent.txt","true",rand(1,10),60);
echo $user_agent."<br>" ;
$browser->set_user_agent($user_agent, true);
$browser->set_accept_charset("ru,en-us;q=0.7,en;q=0.3");
$browser->set_accept_language("windows-1251,utf-8;q=0.7,*;q=0.7");

// прокси
$proxy_string = $textfile->get_line_from_file("c:\\proxy.txt","false",$iproxy,60);
$browser->enable_proxy("all connections",$proxy_string);
echo "proxy $iproxy: ".$browser->get_current_proxy("all connections")." ";

// проверить прокси на соединение с гугль
if ($browser->check_connection("http://www.google.ru/", 30)) 
{
  echo "есть соединение<br>";
} 
else 
{
echo "нет соединения";
continue;
}

// запрос
$input->set_value_by_name('q','human emulator');
$button->click_by_name('btnG');
$browser->wait_for(30,5);

// тут что то делаем с результатами поиска, например переходим на нужный нам сайт.

// очистка данных браузере
$browser->clear_cache();
$browser->clear_cookies("");
$browser->clear_history();
$browser->close();
echo "<br><br>";
//
}

// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 01:26

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

Код: Выделить всё

<?php
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

// задать интервал прогресса и его шаг
$app->set_progress_range(0,100,10);
// обнулить прогресс
$app->set_progress_pos(0);

// показать прогресс
$app->show_progress_bar(true);

// цикл прогресса
for($i=0;$i<10;$i++)
{
    // сделать шаг
    $app->step_progress();

   sleep(1);
   
    echo "номер шага прогресса :".$i."<br>";
}

// обнулить прогесс
$app->set_progress_pos(0);
// скрыть прогресс
$app->show_progress_bar(false);


// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 01:36

малюсенький скрипт проверки тиц у сайта :)

Код: Выделить всё

<?php
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

// руские буковки 
echo $seo->get_yandex_tiz("antika-club.org");

// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 04 сен 2010, 01:47

Скрипт, который гуляет по сайтам. Нашли сайт в поисковике, перешли на него, а через него перешли на другой сайт.

Код: Выделить всё

<?php
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

for($i=0;$i<2;$i++)
{
// navigate to google
$browser->navigate("http://www.yandex.ru");
// wait on browser
$browser->wait(1);

$input->set_value_by_name('text','скрипты для хумана');

$button->click_by_number(0);
$browser->wait_for(60,1);

$anchor->click_by_inner_text('Заметки одного программиста...',false);
$browser->wait_for(60,1);

$anchor->click_by_inner_text('АК Антика',false);
$browser->wait_for(60,1);
}

$browser->close_all_tabs();

// Quit
$app->quit();
?>

Ответить