Вопросы Php по Human Emulator

При таком указание пути
PHP:
$image->save_to_file_by_number(5, "./captcha.jpg");
Ошибку никакую не пишет. Просто не сохраняет и все тут (ошибки в директории путей нет).
Выше как показал pitkina все отрабатывает нормально (сохраняет файл). tnx
А вот с этим не понял - "__DIR__".
PHP:
$image->save_to_file_by_number(5, __DIR__."./captcha.jpg");
или
$image->save_to_file_by_number(5, (__DIR__)."./captcha.jpg");
Пробывал по разному сохранять отказывается.
__DIR__ превращается в путь директории в которой лежит скрипт, '.' (точка) по идее тоже, поэтому оба использовать ненадо. я только что попробывал у себя, эта строка сохранила:
PHP:
$image->save_to_file_by_number(5, __DIR__."\captcha.jpg");
эта строка не сохранила:
PHP:
$image->save_to_file_by_number(5, ".\captcha.jpg");
вообще
PHP:
echo ".\captcha.jpg"; // напечатало .\captcha.jpg
echo __DIR__."\captcha.jpg"; // напечатало C:\XWeb\Human Emulator\My Scripts\captcha.jpg
так что видимо точка для пути не всегда верно.

а вообще, попробуй сам написать полный путь, скажем
PHP:
$image->save_to_file_by_number(5, "C:\XWeb\Human Emulator\My Scripts\captcha.jpg");


thecash
там в фрейме картинки, кроме как кликнуть мышью ($mouse->send_click() или $mouse->click()) сложно если у тебя старые верисии кседанта (плохо с фреймами работал..). какой кседант у тебя?

modelsonline
ну для начала есть закрывающий тег '?>', но нет начального '<?php'
прогнал через чтоб хоть как-то переварить тот бред, получил код ниже. во первых скобка '}' появилась неоткуда, а так думаю ты кусок кода показал, судя по всему часть кода каптчабота, который менять в принципе незачем.
PHP:
<?php
  url = "http://captchabot.com/xmlrpc/axmlrpc.php";
  $this->host = "captchabot.com";
  $this->Username = "";
  $this->Password = "";
}
function Recognize($file, $language = 0)
{
  $s2 = '';
  $contents = file_get_contents($file);
  if (!$contents)
      return 200;
  $converted = base64_encode($contents);
  $request = "ocr_server::analyze";
  $request .= "$converted";
  $request .= "" . $this->Username . "";
  $request .= "" . $this->Password . "";
  $request .= "" . $language . "";
  $request .= "";
  //return $request; $header[] = "Host: ".$this->host; $header[] = "MIME-Version: 1.0"; $header[] = "Content-type: multipart/mixed; boundary=----doc"; $header[] = "Accept: text/xml"; $header[] = "Content-length: ".strlen($request); $[$?eoEheader[] = "Cache-Control: no-cache"; $header[] = "Connection: close \r\n"; $header[] = $request; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$this->url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 140); curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST'); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $data = curl_exec($ch); if (curl_errno($ch)) { return "300"; } $npos=strpos($data,""); if ($npos) { $start=$npos+strlen(""); $s1=substr($data,$start); $npos=strpos($s1,""); if ($npos) { $s2=substr($s1,0,$npos); } } $text=$s2; $npos=strpos($data,""); if ($npos) { $start=$npos+strlen(""); $s1=substr($data,$start); $npos=strpos($s1,""); if ($npos) { $s2=substr($s1,0,$npos); } } $this->id=$s2; return $text; } function Report($result) { $request="ocr_server::ver"; $request.=($result)?"yes":"no"; $request.="".$this->id.""; $header[] = "Host: ".$this->host; $header[] = "MIME-Version: 1.0"; $header[] = "Content-type: multipart/mixed; boundary=----doc"; $header[] = "Accept: text/xml"; $header[] = "Content-length: ".strlen($request); $header[] = "Cache-Control: no-cache"; $header[] = "Connection: close \r\n"; $header[] = $request; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$this->url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST'); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $data = curl_exec($ch); if (curl_errno($ch)) { return false; } else { return true; } } } 
?>
 
К примеру на сайте livedemotivator.ru - тизер в низу страницы.
Примерно так:
PHP:
$proxy = file('proxy.txt');

for ($i=0;$i<count($proxy);$i++)
{
$browser->clear_cache();
$browser->clear_cookies("");
$browser->enable_proxy("",$proxy[$i]);
$browser->navigate('http://livedemotivator.ru/');
$browser->wait_for(60,1);
$anchor->set_focus_by_href("http://www.liveinternet.ru/click",true);
$mouse->click(150,585);
$browser->wait_for(60,1);
//остальные действия


$browser->navigate('about:blank');
}

Остальное добавлять/менять по вкусу.
 
satih
Все проще было - версия с варезсейл не работает с 5.3. Вернул в настройки родной пхп все заработало. Валило именно это, в точности как отквотил.

Вопросик есть, через проксифаер ие загружает страницу в несколько потоков (так устроены браузеры). Если я буду использовать возможности кседанта, в этом случае как все будет? Хочется http прикрутить, они побыстрее, а проксифаер с http соксами не работает.

Есть ли сокс сервисы с апи? Я пообщался на безлимитных тарифах все в отказе, а по 0.2 дорого, да и нету у них апи как таковых, пришлось выдумывать, поднимаю свой апи. А вы как все работаете, текстовый файл со списком?
 
Все проще было - версия с варезсейл не работает с 5.3.
хуман работает с пхп 5.3, да и вообще у него требования минимальные, только курл и усе. у меня работает с пхп 5.3 уже давно (лицензия правда, но хуман ломают нормально), может неправильно пхп.ини настроил?
через проксифаер ие загружает страницу в несколько потоков (так устроены браузеры) ... текстовый файл со списком?
хуман тоже скачивает страницу браузером, если так устроены браузеры, от судьбы не убежать :)
да, текстовый файл со списком, свой прокси чекер чекает прокси, рабочие складывает кседанту в лист. у кседанта хотя тоже прокси чекер есть, но им не пользовался, свой давно настроил, работает и ладно
 
помогите плиз нажать на ВТОРОЙ АНКОР

$anchor->click_by_inner_text('idealnaxod','false');
$browser->wait_for(240,1);

их на странице 2... один в меню и второй в тексте... как нажать ИМЕННО ВТОРОЙ? имена идентичны:(
 
PHP:
$anchor->click_by_number(2);
 
Пытаюсь на Хумане сделать добавлялку доменов в Директ Админ панель, вот что написал

<?php

$xhe_host ="127.0.0.1:7010";

// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");
include ("logins.php");
$login=GetLogin(8);
$browser->navigate('http://хост');
$browser->wait_for(60,1);
$input->set_value_by_name('username','логин');
$input->set_value_by_name('password','пароль');
$button->click_by_number('0');
$browser->wait_for(60,1);
$button->click_by_number('0');
$browser->wait_for(60,1);
$anchor->click_by_inner_text('Add Another Domain',true);
$browser->wait_for(60,1);
$input->set_value_by_name('domain',$login);
$button->click_by_name('create');
$browser->wait_for(60,1);
$browser->clear_cookies("");
$browser->recreate();
// Quit
$app->quit();
?>


У меня всё вышло, но это через раз, тоесть иногда добавляет иногда нет. Когда добавляешь домен надо удалить пропись domain.com и вставить вместо неё строчку с доменов ( выполняет $login, эта строчка кода $input->set_value_by_name('domain',$login); ) но чего то это срабатывает через раз.

При успешном добавлении выбивает надпись Domain Created, как бы мне так реализовать чтоб когда эта надпись в конце была то в файле сохранялись эти домены а которые нет в другом файле? :)
 
PHP:
// если в сурсе страницы нашли фразу Domain Created
if (strpos($webpage->get_body(), 'Domain Created'))
	// добавь домен в файл added.txt
	file_put_contents('added.txt', "$login\r\n", FILE_APPEND);
// иначе добавь домен в файл failed.txt
else file_put_contents('failed.txt', "$login\r\n", FILE_APPEND);
только убедись что 'Domain Created' не находится в сурсе всегда, иногда разные сообщния в js коде сидят, и поиск в сурсе их всегда находит. если так, то поставь побольше фразу для поиска, скажем <DIV>'Domain Created'</DIV>, ну т.е. с окружающими тегами
 
помогите плиз нажать на ВТОРОЙ АНКОР
$anchor->click_by_inner_text('idealnaxod','false');
$browser->wait_for(240,1);
их на странице 2... один в меню и второй в тексте... как нажать ИМЕННО ВТОРОЙ? имена идентичны:(

можно поиграть с
PHP:
$anchor->click_by_attribute('href','сдесь часть урла которая отличается','false');
$browser->wait_for(240,1);
урлы можно посмотреть наведя курсор, у двух одинаковых обычно отличие в конце урла, эту часть и ставь в код.
 
А есть у кого нибудь описание всех фнкций для Human, раньше помню было всё в online а теперь убрали, скиньте ссылку если не сложно.
 
Назад
Сверху