Учимся у Google делать ботов

Тема в разделе "PHP", создана пользователем stargazerrrrr, 27 ноя 2010.

  1. stargazerrrrr

    stargazerrrrr New Member

    Регистр.:
    5 сен 2010
    Сообщения:
    130
    Симпатии:
    0
    [HIDE="70"]Selenium - это пакет для тестирования веб приложений, но его можно использовать не только для этого :). Чтобы убедиться в причастности Гугла к сему продукту достаточно включить youtube видео, линки ниже. Продукт позволяет многопоточно запускать кучу браузеров (окна можна скрыть, браузер любой - от htmlunit до ие или лиса), выполнять любые javascript как и положено полноценному браузеру и много чего еще. Curl и iMacros отдыхают. Для версии 1 есть удобный плагин для лиса и пхп-обертка. Но меня сейчас очень заинтересовал 2.0 на webdriver, он хоть и альфа пока и только на java, но зато...

    Для тех, кто не в курсе:
    http://seleniumhq.org

    Здесь можно взять последние релизы (нас интересует 2.0 alpha 5):
    http://seleniumhq.org/download/
    http://code.google.com/p/selenium/downloads/list

    Обсуждение на нулледе (касается версии 1.0, но тоже много интересного):
    http://nulled-mirror.com/showthread.php?t=99456

    Видео из GTAC (Google Test Automation Conference):
    http://www.youtube.com/watch?v=tGu1ud7hk5I
    http://www.youtube.com/watch?v=Vlz-WmcrBL8
    http://www.youtube.com/user/londonselenium

    p.s. собственно ради него сел учить яву :)
    [/HIDE]
     
    Последнее редактирование: 27 ноя 2010
  2. zerg

    zerg Administrator Команда форума

    Регистр.:
    18 июл 2008
    Сообщения:
    4.254
    Симпатии:
    3
    Ответ: Учимся у Google делать ботов

    [HIDE="70"]
    Зачем если можно на php запускать?[/HIDE]
     
  3. stargazerrrrr

    stargazerrrrr New Member

    Регистр.:
    5 сен 2010
    Сообщения:
    130
    Симпатии:
    0
    Ответ: Учимся у Google делать ботов

    [HIDE="70"]Для версии 2.0 пока еще нет php-обертки, только для java и dotnet.

    Да и комьюнити для java версий клиента (и 1.0 и 2.0) несравнимо крупнее, мне чтобы что-то сносное на 1.0 через php обертку сделать (типа каждый поток через свою проксю) пришлось основательно копнуть класс на php, описывающий взаимодействие с java-сервером (да-да, в 1.0 сервер, запускающий браузеры - в jar файле, вначале bat-файлом стартуешь сервак, он вешается на 4444 порт, а затем уже на этот порт через php или java или dotnet посылаются команды)

    Собственно сложность написания ботов на selenium сводится к тому, что нигде нет готовых примеров написания именно для наших целей с проксями и сменой юзерагентов и т.д. Все используют его по прямому назначению - для тестирования веб-приложений. А кто юзает для наших целей этого не афиширует нигде.

    Простые вещи несложно сваять и на яве, я где-то за час смог запустить простого ботана на яве из примера гугла.

    Хотя можно по образу и подобию версии 1.0 самому сваять php-обертку для 2.0. Вариантов много :). Все равно этот вариант лучше хуман эмулятора, зеннобота и им подобным - здесь мы имеем полную власть над ботом, и это абсолютно for free :).[/HIDE]
     
  4. zerg

    zerg Administrator Команда форума

    Регистр.:
    18 июл 2008
    Сообщения:
    4.254
    Симпатии:
    3
    Ответ: Учимся у Google делать ботов

    [HIDE="70"]Вроде можно, как я понял отсюда ставишь selenium-server-standalone-2.0a7 + selenium-remote-control-1.0.3 и юзаешь через PHP[/HIDE]
     
  5. stargazerrrrr

    stargazerrrrr New Member

    Регистр.:
    5 сен 2010
    Сообщения:
    130
    Симпатии:
    0
    Ответ: Учимся у Google делать ботов

    [HIDE="70"]selenium-remote-control-1.0.3 - это для 1-й версии selenium. Честно скажу, даже не пытался их состыковать, т.к. селениум 2.0 переписан практически from scratches. Не ну вообще-то можно и забыть пока про 2.0 и писать на 1.0 на php, но послушав, как хвалят 2.0 и как четко выглядит код для 2.0 думаю любой ботовод пустит слюнки )

    Судя по подобным сообщениям:

    http://groups.google.com/group/selenium-developers/browse_thread/thread/a701bed6e30db487/fab30af4234bfbac#fab30af4234bfbac

    и по моим безуспешным поискам - пока php - обертки все-таки нет.

    Кстати вот вариант клиента на питоне уже появился:
    http://code.google.com/p/selenium/source/browse/branches/py_cleanup/docs/api/py/index.rst[/HIDE]
     
  6. zerg

    zerg Administrator Команда форума

    Регистр.:
    18 июл 2008
    Сообщения:
    4.254
    Симпатии:
    3
    Ответ: Учимся у Google делать ботов

    [HIDE="70"]
    Я на буржуйском блоге читал что ставили, просто тогда даже странно получается что сервер есть а клиента нету.

    ps вроде здесь
    [/HIDE]
     
  7. kuzmich111

    kuzmich111 Member

    Регистр.:
    10 авг 2010
    Сообщения:
    178
    Симпатии:
    0
    Ответ: Учимся у Google делать ботов

    [HIDE="70"]Абалдеть! Этож мечта ботовода!
    СПАСИБО тебе stargazerrrrr, эта очень полезная инфа! Буду осваивать...

    Сейчас очень жалею, что пару месяцев назад купил зенопостер - глючное неудобное поделие, работает со скоростью черепахи.[/HIDE]
     
  8. stargazerrrrr

    stargazerrrrr New Member

    Регистр.:
    5 сен 2010
    Сообщения:
    130
    Симпатии:
    0
    Ответ: Учимся у Google делать ботов

    [HIDE="70"]
    Хм, на днях попробую, будет здорово, если я ошибся :)[/HIDE]
     
  9. stargazerrrrr

    stargazerrrrr New Member

    Регистр.:
    5 сен 2010
    Сообщения:
    130
    Симпатии:
    0
    Ответ: Учимся у Google делать ботов

    [HIDE="70"]
    Вроде встал, не знаю - может потом какие-нибудь проблемы всплывут, но пока полет нормальный :)
    Вот решил наваять мануал по установке. Помню как год назад мучался, когда 1.0 ставил впервые.

    0. Install wamp: wampserver.com (или кто там денвер юзает, там тоже phpunit ставится)
    1. Install PEAR and PHPUnit
    2. Install Java SE Development Kit
    3. pathman.exe. Прописываем путь к phpunit в path.
    4. В phpunit.bat поменять
    5. Качаем из репозитория
    6. Создаем bat и кидаем на рабстол. Запускаем сервак, он вешается на 4444 порт.
    7. Меняем php код ботана в selenium-remote-control-1.0.3\selenium-php-client-driver-1.0.1\GoogleTest.php
    PHP:
    <?php

    set_include_path
    (get_include_path() . PATH_SEPARATOR './PEAR/');
    require_once 
    'Testing\Selenium.php';
    require_once 
    'PHPUnit/Framework/TestCase.php';

    class 
    GoogleTest extends PHPUnit_Framework_TestCase
    {
        private 
    $selenium;

        public function 
    setUp()
        {
            
    $this->selenium = new Testing_Selenium("*iehta""http://www.google.com"); //собственно поменяли только здесь *firefox на *iehta
            
    $this->selenium->start();
        }

        public function 
    tearDown()
        {
            
    $this->selenium->stop();
        }

        public function 
    testGoogle()
        {
            
    $this->selenium->open("/");
            
    $this->selenium->type("q""hello world");
            
    $this->selenium->click("btnG");
            
    $this->selenium->waitForPageToLoad(10000);
            
    $this->assertRegExp("/Google Search/"$this->selenium->getTitle());
        }

    }
    ?>
    8. Запускаем
    [/HIDE]
     
    Последнее редактирование: 3 дек 2010
  10. zerg

    zerg Administrator Команда форума

    Регистр.:
    18 июл 2008
    Сообщения:
    4.254
    Симпатии:
    3
    Ответ: Учимся у Google делать ботов

    Спасибо за ман и кнопкой и словом. Попробую поставить и ченить помутить сложное.
     
  11. zerg

    zerg Administrator Команда форума

    Регистр.:
    18 июл 2008
    Сообщения:
    4.254
    Симпатии:
    3
    Ответ: Учимся у Google делать ботов

    Ну что, пробовали писать ботов selenium?
     
    Последнее редактирование: 23 май 2017
  12. stargazerrrrr

    stargazerrrrr New Member

    Регистр.:
    5 сен 2010
    Сообщения:
    130
    Симпатии:
    0
    Ответ: Учимся у Google делать ботов

    [HIDE="100"]Пишем ). Сейчас часть ботов на яве, часть на пхп через селениум, а для простых действий по-прежнему курл. Потихоньку интегрирую все в один комбайн. Кстати, от идеи делать все на основе вордпресса я отказался - он для этого не подошел по многим причинам.

    Zerg, а сам запускал?[/HIDE]
     
  13. zerg

    zerg Administrator Команда форума

    Регистр.:
    18 июл 2008
    Сообщения:
    4.254
    Симпатии:
    3
    Ответ: Учимся у Google делать ботов

    [HIDE="100"]
    А что выбрал и почему отказался?

    stargazerrrrr, хотел ствить но ... только сейчас первый раз не смог написать на курле, поэтому будем ставить ). stargazerrrrr, если будут примеры интересные выкладывай в сабж, я тоже буду.[/HIDE]
     
  14. stargazerrrrr

    stargazerrrrr New Member

    Регистр.:
    5 сен 2010
    Сообщения:
    130
    Симпатии:
    0
    Ответ: Учимся у Google делать ботов

    [HIDE="100"]
    Ковырнул я вордпресс поглубже - код мне понравился, и нам реально есть чему поучиться у его разработчиков. Если он тормозит, то это из-за кривой темы, кривых плагинов и непродуманной системы кеширования, все это поправимо.

    Неподошел он мне в основном потому, что я захотел использовать ajax-фреймворк и некоторые jquery библиотеки, из-за которых использование стандартной системы построения урлов в админке становится нецелесообразным. Кроме того, пришлось бы следить, чтобы чужие плагины не падали от нововведений. Да и урезать ядро его так, чтобы ничего не упало - это уже сама по себе задачка, как оказалось. Есть еще много нюансов, но не хочу все перечислять.

    В общем, я понял, что быстрее напишу все сам, чем буду переделывать танк в ракету :). А плагины вордпресса типа wprobot, которые собственно и были основным аргументом в пользу этого варианта, все равно переиначивать надо чтобы сообща работали.

    Пишу на своем любимом фреймворке - yii (yiiframework.ru, yiiframework.com). Кстати он на ура хавает классы от зенда.

    Хорошо, я подумаю что бы такое выложить, а вообще для старта в инете достаточно материала.
    [/HIDE]
     
  15. zerg

    zerg Administrator Команда форума

    Регистр.:
    18 июл 2008
    Сообщения:
    4.254
    Симпатии:
    3
    Ответ: Учимся у Google делать ботов

    Я наверное все же буду на java юзать. В ближайшее время поделюсь мануалами и готовыми примерами.
     
  16. zerg

    zerg Administrator Команда форума

    Регистр.:
    18 июл 2008
    Сообщения:
    4.254
    Симпатии:
    3
    Ответ: Учимся у Google делать ботов

    Кстати а как дела с прокси? Там серверу можно передать при запуске но это не очень удобно. Вот думаю может стоит допилить сервер.

    Ps: создал мануал на Java по Selenium ботам
     
    Последнее редактирование: 2 июн 2017

Поделиться этой страницей