Php parser yandex market

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Парсер товаров с Яндекс.Маркета. Ссылка на рабочую версию парсера, прикреплена ниже

FalseHuman/yandex_market_parser

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Читайте также:  Дизайн таблицы html примеры

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

$ cd backend $ pip install -r ./requirements.txt

Откройте settings.py и измените данные на собственные

DATABASES = < 'default': < 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'CHANGE_YOUR_DATABASE_NAME', 'USER': 'CHANGE_USER', 'PASSWORD': 'CHANGE_YOUR_PASSWORD' > > EMAIL_HOST = 'YOUR_EMAIL_HOST' EMAIL_HOST_USER = 'YOUR_EMAIL_HOST_USER' EMAIL_HOST_PASSWORD = 'YOUR_EMAIL_HOST_PASSWORD' EMAIL_PORT = 465 EMAIL_USE_TLS = False EMAIL_USE_SSL = True

Для работы парсера yamarket.py нужен установленный браузер Google Chrome и Chromedriver, так же измените настройки на свои:

options.add_argument(f"user-data-dir=YOUR_PATH_PROFILE_CHROME") # Путь до профиля можно найти введя в адресную строку Chrome - chrome://version/ driver = webdriver.Chrome(executable_path='YOUR_PATH_CHROMEDRIVER', chrome_options=options) # путь до chromedriver

❗ ❗ ❗ Ремарка по поводу профиля Chrome ❗ ❗ ❗

Прежде чем запустить парсер необходимо залогиниться в Яндексе, это необходимо для того, чтобы обходить капчу. Если не хотите использовать дефолтный профиль Chrome, то необходимо указать путь до профиля, в котором так же необходимо пройти авторизацию в Яндексе.

$ python manage.py migrate $ python manage.py runserver
$ cd frontend $ npm install $ npm run serve

В корне проекта создать .env.dev и прописать свои настройки

# Data Base POSTGRES_DB=имя_твоей_бд POSTGRES_ENGINE=django.db.backends.postgresql POSTGRES_USER=имя_твоего_пользователя POSTGRES_PASSWORD=пароль_бд POSTGRES_HOST=db POSTGRES_PORT=5432 #Email EMAIL_HOST_USER=твой_адрес_email EMAIL_HOST_PASSWORD=пароль_почты

❗❗❗Ремарка по поводу профиля Chrome ❗❗❗См. выше. Далее запуск контейнера

$ cd docker $ docker-compose up --build

Ссылка, как установить для Windows Ссылка, как установить для Linux

About

Парсер товаров с Яндекс.Маркета. Ссылка на рабочую версию парсера, прикреплена ниже

Источник

Yandex Market Parser

Yandex Market Parser — is a PHP program for handy parsing goods from http://market.yandex.ru. With selectable goods list for parsing, categories support, show goods mode and configurable export settings.

Features

  • Handy ajaxified parsing goods from http://market.yandex.ru
  • Select vendors and goods from interface of the program
  • Categories support
  • Configurable export settings

Project Samples

Yandex Market Parser Screenshot 1 Yandex Market Parser Screenshot 2 Yandex Market Parser Screenshot 3 Yandex Market Parser Screenshot 4 Yandex Market Parser Screenshot 5 Yandex Market Parser Screenshot 6

Project Activity

Follow Yandex Market Parser

For Manufacturing teams, IT teams, software and product teams, and agile teams

For teams looking to improve their productivity and performance, LiquidPlanner offers the right solution. LiquidPlanner is a dynamic online project management software for businesses looking to thrive and succeed in competitive industries. Affordable and feature-packed, LiquidPlanner revolutionizes project management with its robust set of tools, such as smart schedules, resource management, cross-project visibility, contextual collaboration, integrated time tracking, and advanced analytics.

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

YML (Yandex Market Language) parser

License

lireincore/ymlparser

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

YML (Yandex Market Language) parser

YML (Yandex Market Language) streaming parser with validation. Based on XMLReader. Suitable for large files.

Add the «lireincore/ymlparser»: «^3.2» package to your require section in the composer.json file

$ php composer.phar require lireincore/ymlparser
use LireinCore\YMLParser\YML; $yml = new YML(); try < $yml->parse($filepath); $date = $yml->getDate(); $shop = $yml->getShop(); if ($shop->isValid()) < $offersCount = $shop->getOffersCount(); $shopData = $shop->getData(); //. foreach ($yml->getOffers() as $offer) < if ($offer->isValid()) < $offerCategoryHierarchy = $shop->getCategoryHierarchy($offer->getCategoryId()); $offerData = $offer->getData(); //. > else < var_dump($offer->getErrors()); //. > > > else < var_dump($shop->getErrors()); //. > > catch (\Exception $e) < echo $e->getMessage(); //. >

The MIT License (MIT). Please see License File for more information.

Источник

Чтение XML файла Яндекс Маркета в PHP

Если требуется сделать импорт или обновление товаров по XML файлу Яндекс Маркета, можно применить расширении PHP Simplexml. Эта библиотека довольно быстрая и работает с большими файлами. О структуре xml файла можно ознакомиться в разделе помощи Яндекса.

Сохранение файла на сервер и его чтение

$ch = curl_init('http://site.com/market.xml'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); $html = curl_exec($ch); curl_close($ch); file_put_contents(__DIR__ . '/file.xml', $html); $data = simplexml_load_file(__DIR__ . '/file.xml');

Если файл под паролем, нужно добавить авторизацию:

curl_setopt($ch, CURLOPT_USERPWD, 'логин:пароль');

Информация о магазине

Корневой раздел shop содержит информацию о магазине и другие разделы.
https://yandex.ru/support/partnermarket/elements/shop.html

// Дата и время генерации YML-файла. echo strval($data['date']); // name - короткое название магазина. echo strval($data->shop->name); // company - полное наименование компании. echo strval($data->shop->company); // url - URL главной страницы магазина. echo strval($data->shop->url); 

Список курсов валют

foreach ($data->shop->currencies->currency as $row)

Категории

Блок категорий из представляет собой список, атрибут parentId указывает ID родительской категории.
https://yandex.ru/support/partnermarket/categories.html

 Лоты для творчества Картон Трафареты 
foreach ($data->shop->categories->category as $row)

Товары

В примере показаны только часто используемые элементы,
о всех элементах на https://yandex.ru/support/partnermarket/offers.html

 http://site.com/product/123 5000 6000 RUR 3 Краска с экстра блеском "Mystik ink" Brand http://site.com/img/123.jpg Краска на основе сольвента идеально подходят для стекла 
foreach ($data->shop->offers->offer as $row) < // id - идентификатор предложения. $id = intval($row['id']); // available - статус товара «в наличии» / «на заказ». $available = intval($row['available']); // url - URL страницы товара на сайте магазина. $url = strval($row->url); // price - актуальная цена. $price = strval($row->price); // oldprice - старая цена. $oldprice = strval($row->oldprice); // currencyId - валюта. $currencyId = strval($row->currencyId); // currencyId - идентификатор категории товара. $categoryId = intval($row->categoryId); // name - название товара. $name = strval($row->name); // vendor - название производителя. $vendor = strval($row->vendor); // picture - изображение. $picture = strval($row->picture); // description - описание. $description = strval($row->description); >

Источник

Какой парсер выбрать для сбора характеристик товаров из Яндекс Маркета?

Посоветуйте хороший парсер характеристик товаров с яндекс маркета. Желательно без необходимости допиливания и возможностью сразу получать фотографии товара. Должны же быть какие-нибдуь платные решения для этой задачи.

Оценить 1 комментарий

leha_gorbunov

hazratgs

Как то давно писал парсер маркета, вот метод, ищет по запросу self::$partNo, хотя сегодня можно получить доступ к Контентный API что несомненно будет лучше для использования.

protected function YandexMarket ()< $url = 'http://market.yandex.ru/search.xml?text='.urlencode(self::$partNo); // UE40F6400 $simple = file_get_html($url); $searh = $simple->find('.b-offers_type_guru .b-offers__title a',0)->href; if (is_null($searh)) $title = $simple->find('.b-offers__spec',0)->plaintext; $simple = file_get_html('http://market.yandex.ru'.$searh); $name = $simple->find('h1.b-page-title',0)->plaintext; $category = $simple->find('.b-breadcrumbs__link',0)->plaintext; $imgBig = array(); $images = $simple->find('span.b-model-pictures__small a'); if (is_null($images))< $imgBig[] = $simple->find('.b-model-pictures__big a',0)->href; >else< $imgBig[] = $simple->find('.b-model-pictures__big a',0)->href; foreach ($images as $img)< $imgBig[] = $img->href; > > if (is_null($imgBig[0]))< $imgBig[0] = $simple->find('.b-model-pictures__big img',0)->src; > $simple = file_get_html('http://market.yandex.ru'.$simple->find('.b-switcher__item a[href^=/model-spec.xml]',0)->href) ; // на страницу с параметрами if (!($simple->find('.b-properties',0))) if (!($simple->find('.b-properties',0)->find('tr'))) $description = $simple->find('.b-properties',0)->find('tr'); $descrpt = ''; foreach ($description as $el)< $descrpt .= $el->first_child()->plaintext.'§ '.$el->last_child()->plaintext.'®'; > $description = $descrpt; // $simple = file_get_html('http://market.yandex.ru'.$simple->find('.b-switcher__item a[href^=/product/]',0)->href); // на страницу с параметрами // $posts = $simple->find('.b-aura-reviews'); // $array_post = array(); // foreach($posts as $post)< // $user_post = $post->find('.b-aura-username',0)->plaintext; // $rating = $post->find('.b-aura-review__rate .b-aura-rating',0)->rate; // $text = $post->find('.b-aura-review__verdict .b-aura-userverdict'); // foreach ($text as $element)< // if ($element->first_child()->plaintext == 'Достоинства:')'.$element->first_child()->plaintext.''.$element->last_child()->plaintext;> // if ($element->first_child()->plaintext == 'Недостатки:' )'.$element->first_child()->plaintext.''.$element->last_child()->plaintext;> // if ($element->first_child()->plaintext == 'Комментарий:')'.$element->first_child()->plaintext.''.$element->last_child()->plaintext;> // > // $array_post[] = array( // 'user' => $user_post , // 'rating' => $rating , // 'plus' => $plus , // 'minus' => $minus , // 'comment' => $commet // ); // > self::$parser = 'Yandex.Market'; self::$param = array( 'name' => $name , 'category' => $category , 'title' => $title , 'description' => $description , 'images' => $imgBig ); return true; >

stepan_sib

У меня есть свой парсер. Недавно яндекс изменил верстку, я это уже учел. Могу выложить на гитхаб сегодня/завтра, если нужно

Источник

Оцените статью