<?php

KDGLoader::loadEntityClass('Product');
KDGLoader::loadModelClass('ProductModel');
KDGLoader::loadModelClass('CategoryModel');
KDGLoader::loadLibraryClass('parsers/NewhtfProductsListParser');
class NewhtfCollectProductsCrawler extends Crawler
{
    protected function crawl()
    {
        $categories = CategoryModel::findAllMain();
        foreach ($categories as $category) {
            $html = $this->requestProductsListPage($category->url);
            if ($html) {
                $this->parseProductsList($html, $category);
            }
        }
    }
    protected function requestProductsListPage($url)
    {
        $this->sendBuffered('category: ' . $url);
        return $this->makeRequest($url, false, false, false);
    }
    protected function parseProductsList($html, $category)
    {
        $parser = new NewhtfProductsListParser($html);
        foreach ($parser->products_list as $data) {
            $entity = ProductModel::findOneByUrl($data['url']);
            if (!$entity) {
                $entity = new Product();
            }
<?php

KDGLoader::loadEntityClass('Product');
KDGLoader::loadEntityClass('ProductProperty');
KDGLoader::loadEntityClass('ProductToProperty');
KDGLoader::loadModelClass('PropertyModel');
KDGLoader::loadEntityClass('ProductImage');
KDGLoader::loadModelClass('ProductImageModel');
class NewhtfUpdateProductParser extends KDGParser
{
    protected $product = null;
    public function __construct($response, $product)
    {
        $this->product = $product;
        parent::__construct($response);
    }
    protected function parseDataObject()
    {
    }
    protected function hasDataObject()
    {
        return true;
    }
    protected function parseTitle()
    {
        return $this->getResponseObject()->query('//h1')->item(0)->nodeValue;
    }
    protected function parsePrice()
    {
        $items = $this->getResponseObject()->query('//span[@id="ys_top_price"]/span[@class="allSumMain"]');
        if ($items->length > 0) {
示例#3
0
 protected function createEntity($arr = array())
 {
     $class = ucfirst($this->getEntityName());
     if (!class_exists($class)) {
         KDGLoader::loadEntityClass($class);
     }
     if (class_exists($class)) {
         return new $class($arr);
     }
     return null;
 }
示例#4
0
 public function createEntity($arr = array())
 {
     $class = KDGInflector::classify($this->getEntityName());
     if (!class_exists($class)) {
         KDGLoader::loadEntityClass($class);
     }
     if (class_exists($class)) {
         return new $class($arr);
     }
     return null;
 }
示例#5
0
<?php

KDGLoader::loadEntityClass('Category');
KDGLoader::loadModelClass('CategoryModel');
KDGLoader::loadLibraryClass('parsers/NewhtfMainCategoryParser');
KDGLoader::loadLibraryClass('parsers/NewhtfMiddleCategoryParser');
KDGLoader::loadLibraryClass('parsers/NewhtfSubCategoryParser');
class NewhtfCategoryCrawler extends Crawler
{
    protected $mainCategories = [];
    protected $middleCategories = [];
    protected $subCategories = [];
    protected function crawl()
    {
    }
    /* MAIN CATEGORIES */
    public function crawlMainCategories()
    {
        $this->response = null;
        $this->requestMainCategoriesPage();
        if ($this->response) {
            $this->parseMainCategories();
        }
    }
    protected function requestMainCategoriesPage()
    {
        $url = 'http://newhtf.ru/catalog/';
        getDiffTime(1);
        getDiffMemory(1);
        $this->sendBuffered($url);
        $this->response = $this->makeRequest($url, false, false, false);
<?php

KDGLoader::loadEntityClass('Developer');
KDGLoader::loadModelClass('DeveloperModel');
KDGLoader::loadEntityClass('Publisher');
KDGLoader::loadModelClass('PublisherModel');
KDGLoader::loadEntityClass('Content');
KDGLoader::loadModelClass('ContentModel');
KDGLoader::loadEntityClass('Genre');
KDGLoader::loadModelClass('GenreModel');
KDGLoader::loadEntityClass('ContentToGenre');
KDGLoader::loadModelClass('ContentToGenreModel');
KDGLoader::loadEntityClass('Feature');
KDGLoader::loadModelClass('FeatureModel');
KDGLoader::loadEntityClass('ContentToFeature');
KDGLoader::loadModelClass('ContentToFeatureModel');
KDGLoader::loadModelClass('CategoryModel');
KDGLoader::loadModelClass('ContentToCategoryModel');
class XboxOneDLCContentDetailsPageParser extends KDGParser
{
    protected $RawItem = null;
    protected $content_object = null;
    public function __construct($response, $content_object)
    {
        $this->content_object = $content_object;
        parent::__construct($response);
    }
    protected function hasDataObject()
    {
        return true;
    }