<?php
use DiDom\Document;
class Task_VKparse extends Minion_Task {
protected static $_timeout = 1;
protected function _execute(array $params) {
//Получаем id матчей
$html = new Document('http://www.gosugamers.net/dota2/gosubet', TRUE);
$elements = $html->find('div.box')[0]->find('table tbody tr');
$matches = array();
foreach ($elements as $el) {
$gg_link = $el->find('td a')[0]->attr('href');
//Преобразование данных
$match = array(
'gg_link' => $gg_link,
);
$matches[] = $match;
}
// Переход на страницу матча
foreach ($matches as $match) {
// Получение html кода страницы матча
$html = new Document('http://www.gosugamers.net' . $match['gg_link'], TRUE);
$format = $html->find('p.bestof')[0]->text();
$streams = $html->find('span.match-stream-tab');
$match['format'] = (new GG)->format($format);
$match['team1'] = $html->find('div.opponent1 h3')[0]->text();
$match['team2'] = $html->find('div.opponent2 h3')[0]->text();
$match['tournament'] = $html->find('fieldset legend a')[0]->text();
$match['stream_ru'] = (new GG)->stream_ru($streams);
$match['stream_en'] = (new GG)->stream_en($streams);
// Занесение полученных данных в массив
$matches[] = $match;
// Minion_CLI::write(var_dump($matches));
}
// Запись результата в БД
foreach ($matches as $match) {
$match_orm = new Model_Match;
// Загрузка матча, если он уже есть в БД
$match_orm->where('gg_link', '=', $match['gg_link'])->find();
// Внесение новых данных о матче
$match_orm->values($match);
$match_orm->save();
}
}
}
<?php
use DiDom\Document;
class Task_VKparse extends Minion_Task {
protected static $_timeout = 1;
protected function _execute(array $params) {
//Получаем id матчей
$html = new Document('http://www.gosugamers.net/dota2/gosubet', TRUE);
$elements = $html->find('div.box')[0]->find('table tbody tr');
$matches = array();
foreach ($elements as $el) {
$gg_link = $el->find('td a')[0]->attr('href');
//Преобразование данных
$match = array(
'gg_link' => $gg_link,
);
$matches[] = $match;
}
// Переход на страницу матча
foreach ($matches as &$match) {
// Получение html кода страницы матча
$html = new Document('http://www.gosugamers.net' . $match['gg_link'], TRUE);
$format = $html->find('p.bestof')[0]->text();
$streams = $html->find('span.match-stream-tab');
$match['format'] = (new GG)->format($format);
$match['team1'] = $html->find('div.opponent1 h3')[0]->text();
$match['team2'] = $html->find('div.opponent2 h3')[0]->text();
$match['tournament'] = $html->find('fieldset legend a')[0]->text();
$match['stream_ru'] = (new GG)->stream_ru($streams);
$match['stream_en'] = (new GG)->stream_en($streams);
// Minion_CLI::write(var_dump($matches));
}
// Запись результата в БД
foreach ($matches as $match) {
$match_orm = new Model_Match;
// Загрузка матча, если он уже есть в БД
$match_orm->where('gg_link', '=', $match['gg_link'])->find();
// Внесение новых данных о матче
$match_orm->values($match);
$match_orm->save();
}
}
}