Jump to content

Recommended Posts

Парсер характеристик товаров не с Яндекса, а, например, с Mail ru делал кто-нибудь?

Характеристики вообще перестали париться с Яндекса, прикрывают они лавочку под API

 

Вот тут лежат характеристики, как сделать парсер с майл кто делал?

http://hi-tech.mail.ru/catalog/samsung/samsung_galaxy_mega_6_3_16gb_14081937/

 

Так же на торг майл есть

 

http://torg.mail.ru/mobilephones/samsung-galaxy-s-4-16gb-id13894410/

Link to post
Share on other sites

может будет проще адаптировать яшу?

в общем как то этот вопрос нужно решить, или сделать что-то с яндексом, или сменить источник, если кто-то делал, поделитесь.

Link to post
Share on other sites

<?php

$use_curl = true; // Использовать CURL

// Ключевое слово для поиска
$keyword = $_GET['keyword'];
$keyword = str_replace(' ', '+', $keyword);

// Адрес страницы с результатами поиска
$url = "http://market.yandex.ru/search.xml?text=$keyword&nopreciser=1";

// Выбираем результаты поиска
$page = get_page($url);

// Находим ссылку на описание товара
if(preg_match_all('/<h3 class="b-offers__title"><a href="(.*?)" class="b-offers__name">/ui', $page, $matches))
$product_url = 'http://market.yandex.ru'.reset($matches[1]);
else
return false;

$page = get_page($product_url);

if(preg_match_all('/<ul class="b-vlist b-vlist_type_mdash b-vlist_type_friendly">(.*?)<\/ul>/ui', $page, $matches))
{
// Описание товара
$description = '<ul>'.reset($matches[1]).'</ul>';
$result->description = $description;

// Страница характеристик
if(preg_match_all('/<p class="b-model-friendly__title"><a href="(.*?)">все характеристики<\/a><\/p>/ui', $page, $matches))
{
$options_url = 'http://market.yandex.ru'.reset($matches[1]);

$options_page = get_page($options_url);
preg_match_all('/<th class="b-properties__label b-properties__label-title"><span>(.*?)<\/span><\/th><td class="b-properties__value">(.*?)<\/td>/ui', $options_page, $matches, PREG_SET_ORDER);

$options = array();
foreach($matches as $m)
{
$option = null;
$option->name = $m[1];
$option->value = $m[2];
$options[] = $option;
}
$result->options = $options;
}
else
return false;
}
else
return false;

header("Content-type: application/json; charset=UTF-8");
header("Cache-Control: must-revalidate");
header("Pragma: no-cache");
header("Expires: -1");

print(json_encode($result));


function get_page($url, $use_curl=true)
{
if($use_curl && function_exists('curl_init'))
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://google.com');
curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51");
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Для использования прокси используйте строки:
//curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
//curl_setopt($ch, CURLOPT_PROXY, '88.85.108.16:8080');
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');

// Яндекс может нас отправить в редирект, так что нужно следовать за редиректом
do{
curl_setopt($ch, CURLOPT_URL, $url);
$header = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($code == 301 || $code == 302)
{
preg_match('/Location:(.*?)\n/', $header, $matches);
$url = trim(array_pop($matches));
}
else
$code = 0;
}while($code);

$page = curl_exec($ch);
curl_close($ch);
}
else
{
$page = file_get_contents($url);
}
return $page;
}
Link to post
Share on other sites

1 версия симплы?

2 были ли изменения в товаре?

3 характеристики получаются при условии совпадения названия товара с яшей

Давно перестал работать парсер, еще с 2.1.5, на 2.2 ничего не изменилось. Это не только у меня, у многих не работает. Все совпадает.

 

Тема с баном IP адреса или домена не прокатывает. Тестировали на новых IP и доменах, тоже не работает.

Link to post
Share on other sites

У меня характеристики заполняются.

Например, на название товара LG 3000 или LG 2000. 

Версия 2.2.4.

 

На демо-сайте работает.

 

Если у Вас не идет, надо все детали проверять. Может быть, в частности, и из-за хостинга (например curl отключен).

Есть curl и работает. Может какие то еще расширения требуются, подскажите ?

 

Link to post
Share on other sites
  • 2 months later...

Я ему скинул вариант с анонимайзером.... дело в хосте. Яша блочил как робота

Скиньте и здесь пожалуйста, та же проблема. Интересно что картинки парсит, а характеристики нет. 

Link to post
Share on other sites
  • 2 months later...

UP, ребята проблема актуальна на сегодняшний день, парсит не все параметры, а некоторые даже и неправильно, на демо такая же ситуация, кто столкнулся с этим?

 

..... проблема решена.

Link to post
Share on other sites
  • 3 months later...

Ну "решена" это хорошо, а где решение?

Почитать новые темы форума ну так же лень наверное.

Вот тут подробно написано как обновить парсер без обновления всей системы http://forum.simplacms.ru/topic/7849-новая-simpla-236-от-14-июля-2014-новый-парсер-товаров/

Link to post
Share on other sites

Не, мне обновлять не надо, проблема в другом. После нескольких запросов яндекс начинает запрашивать капчу, Я уже подставил список из нескольких прокси, но хватает не надолго. Вот думаю как обойти это, вижу два пути. 

1. попробовать тянуть через АПИ маркета, если позволит.

2. перехватить страницу с капчей и запостить ее курлом назад

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...