пятница, 31 октября 2014 г.

Парсер yandex

Пишу этот пост чтобы понять на сколько популярна эта тема. И естественно выложить минимально работающую версию парсера yandex.
Вот результат его работы


для его работы установите casperjs

создайте файл со следующим содержимым
var casper = require('casper').create();
var k_word = "";
var k_words = [
 "тест",
 "поиск",
 "Программы для парсинга",
]
 
casper.start('http://www.yandex.ru/', function() {
    this.wait(getRandomInterval(700, 2000), function() {
        this.echo("load yandex");
    });
});
 
for(var i, i=0; i<k_words.length; i++ ){
 casper.then(function() {
  this.wait(getRandomInterval(700, 2000), function() {
   k_word = k_words.shift();
   this.sendKeys('input[name="text"]', k_word);
  });
 });
 casper.then(function() {
  this.wait(getRandomInterval(700, 2000), function() {
   this.click('button[type="submit"]'); 
   this.echo("start find");
  });
 }); 
 casper.then(function() {
  casper.waitForSelector('.serp-block', function() {
   this.echo('find in yandex');
   this.capture(k_word + " " + 'yandex.png');
  });
 });
  casper.then(function() {
    this.wait(getRandomInterval(1000, 2000), function() {
      this.click('.input__clear_visibility_visible'); 
    });
  }); 
}
casper.run();

function getRandomInterval(min, max) {
    return Math.random() * (max - min) + min;
}

Запускаем парсер командой casperjs имя файла
PHP: The Right Way блог програмышки
Яндекс.Метрика