0
Исправлен

Перестал работать парсинг левой колонки Yandex.Wordstat.

testovoii@yandex ru 8 лет назад обновлен Rush Analytics (Добрый саппортовец) 8 лет назад 25

Перестал работать парсинг левой колонки Yandex.Wordstat через апи - не создается проект. Ничего не менял, всё работало, а теперь вдруг ошибка SOAP: сервер возвращает не XML документ.

Так же парсинг частотности начал возвращать пустой excel-файл, который должен содержать результат.
Uncaught SoapFault exception: [Client] looks like we got no XML document

На рассмотрении

Здравствуйте!

Пришлите, пожалуйста, код Вашего апи запроса и код ответа. Мы все проверим.

Насчет парсинга частотности:

Проект создается, статус просматривается, все ок. Но когда проект обработан, система возвращает ответ
'4|http://www.rush-analytics.ru/apioutput.php?type=4&sessionid=be583d750dcfd4fd8c37f2c8def4b7b9'
Но по этой ссылке ничего нет.


Насчёт парсинга левой колонки:

Все параметры адекватные. Код ответа не могу показать, т.к. при попытке создать проект выскакивает вышеописанная ошибка, т.е. ответ фактически не может распарсится.

Точно такой же код используется для сбора частотности (только меняется параметр collecttype и pages).

Вместо self::$API_URL и $API_KEY стоят правильные значения (http://api.rush-analytics.ru/api.php?wsdl и мой апи ключ)

$api = new SoapClient(self::$API_URL);
$api-> response_timeout = 60000;
$regionid = $regid; //код региона Яндекс Wordstat
$name = $this-> Select("Select name_list FROM ws_parser_lists WHERE hash='{$list_hash}'")[0]['name_list'];
$collecttype = 1; // Тип сбора данных. 0:сбор частотностей ключевых слов, 1: Сбор левой колонки Wordstat
$pages = 40; // Сколько нужно спарсить страниц левой колонки Wordstat (0-10 или 40(все)); Если выбран парсинг частотнности - 0, эта переменная не нужна
$normal = 1; // Базовая частотность - без кавычек и ! (0/1)
$quotationmark = 0; // Частотность в кавычках, например "автосервис" (0/1)
$exclamation = 1; // Точная частотность, например: "!автосервис"
$minwordstat = 1; // Автоматически подставить 0 для частотностей вида "автосервис" и "!автосервис", если базовая частотность меньше чем значение этой переменной
$swtype = 0; // Stopwords type: 0 - Фразовое соответствие, 1 - Символьное соответствие
$altfreq = 0; // Учитывать порядок слов [] (0/1)
$keywords = explode("\n", file_get_contents(self::$path.'keywords/'.$list_hash.'.txt'));
$stopwords = [];

$response = $api-> rushapi__create_wordstat_project(self::$API_KEY, $name, $regionid, 
$collecttype, $pages, $normal, $quotationmark, $exclamation, $minwordstat, $keywords, $stopwords, $swtype, $altfreq); //ставим задачу в очередь

Я ничего не менял, но возникли следующие изменения:

В парсинге частотности ссылка теперь рабочая, есть заголовки в excel-файле, но сам по себе файл пустой.
В парсинге левой колонки задачи теперь ставится в результат (прошлой ошибки нет), но файл с результатом так же пустой (хотя заголовки и листы есть).

Здравствуйте!

Мы нашли в чем было дело. Мы меняли структуру серверов + переехали на https и не успели еще все настройки заменить.

задача по АПИ уже в тех отдела. Ее скоро сделают.

Здравствуйте!

Проблемы с Апи сейчас устранены.

Попробуйте, сейчас создать новый проект.

Спасибо за Ваше обращение.

Добрый вечер. Проекты так же создаются, то при парсинге частотности так же возвращается пустой excel-файл (есть заголовки в файле - точная и общая частотности, но информации по фразам нет).
При парсинге левой колонки то же самое.

Добрый день!

Спасибо, мы все проверим еще раз.

Добрый день! Наша техническая команда уже решает проблему. Постараемся все починить как можно быстрее

Через API так и не работает. Если до утра понедельника не восстановите, я потребую возврат 11тр с баланса! Сервис стоит простоем.

Наши программисты сообщили, что в API уже все работает. Мы сейчас протестируем все и срочно поставим им задачу.

Приносим свои извинения за временные неудобства.

Мы проверили все еще раз. Система работает. Проекты создаются. Ошибок никаких нет в API.

Сообщите, пожалуйста, название Вашего проекта. Мы проверим его через веб интерфейс.

Сервис отдает пустой файл с заголовками. Название проекта смогу сообщить только позже, но такая ошибка уж е была

Ждем название проекта, очень нужно что бы выяснить причину.

Мы протестировали несколько последних проектов с Вашего акк. и они тоже отдавали верный результат.

Во всех новых тоже ошибок со среды нет.

Создали 2 проекта. Названия:

Парсинг частотности : проект "тест частотность" - 10 фраз, в файле результата только заголовки. При этом в интерфейсе на сайте все нормально обрабатывается и скачивается.

Парсинг левой колонки : проект "тест левая колонка " - 10 фраз. То же самое.

Код не меняли. Вчера все работало. Выходит, ссылка битая приходит, когда проект имеет статус 4 (обработка завершена)

Хорошо. Спасибо. Завтра будем заниматься еще раз Вашими проектами.

Добрый вечер. Ошибки все те же. Может, в API что-либо поменяли? Была такая ошибка, затем стало нормально, теперь снова пустой файл с заголовками.

Добрый день!

Девайте проверим еще раз полностью весь Ваш код.

Пришлите, нам весь запрос в апи.

+ Отдельно сообщите какие ссылки Вы используете для соединения с нашим сервисом и для скачивания файла через апи. Так как в них изменения были.

Так же у нас был изменен dns

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


Ссылка http://api.rush-analytics.ru/api.php?wsdl
Апи ключ из интерфейса.

Создание проекта:

$api = new SoapClient(self::$API_URL);
$api-> response_timeout = 60000;
$regionid = $regid; //код региона Яндекс Wordstat
$name = $this-> Select("Select name_list FROM ws_parser_lists WHERE hash='{$list_hash}'")[0]['name_list'];
$collecttype = 1; // Тип сбора данных. 0:сбор частотностей ключевых слов, 1: Сбор левой колонки Wordstat
$pages = 40; // Сколько нужно спарсить страниц левой колонки Wordstat (0-10 или 40(все)); Если выбран парсинг частотнности - 0, эта переменная не нужна
$normal = 1; // Базовая частотность - без кавычек и ! (0/1)
$quotationmark = 0; // Частотность в кавычках, например "автосервис" (0/1)
$exclamation = 1; // Точная частотность, например: "!автосервис"
$minwordstat = 1; // Автоматически подставить 0 для частотностей вида "автосервис" и "!автосервис", если базовая частотность меньше чем значение этой переменной
$swtype = 0; // Stopwords type: 0 - Фразовое соответствие, 1 - Символьное соответствие
$altfreq = 0; // Учитывать порядок слов [] (0/1)
$keywords = explode("\n", file_get_contents(self::$path.'keywords/'.$list_hash.'.txt'));
$stopwords = [];
$response = $api-> rushapi__create_wordstat_project(self::$API_KEY, $name, $regionid, $collecttype, $pages, $normal, $quotationmark, $exclamation, $minwordstat, $keywords, $stopwords, $swtype, $altfreq); //ставим задачу в очередь

Проект создается правильно, обрабатывается, результат я могу скачать через интерфейс Вашего сайта.

$response я использую как айдишник, по которому я извлекаю статус проекта

Получение результатов проекта:

$status = $api-> rushapi__wordstat_project_status(self::$API_KEY, $lists[$i]['handle']);
$status = explode('|', $status);
if ($status[0] == '1') //проект в очереди
{
$status = 'waiting';
}
elseif ($status[0] == '2' or $status[0] == '6' or $status[0] == '7') //проект обрабатывается
{
if ($status[0] == '2')
    {
$processed = isset($status[1]) ? $status[1] : 111;
}
$status = 'process';
}
elseif ($status[0] == '4') //проект обработан
{
$result = $status[1];
$status = 'finished';
$file_name = $path.'results/'.$lists[$i]['hash'].'.xlsx';
$file = fopen($file_name, "wt");
fwrite($file, file_get_contents($result)); //создаем файл с исходными данными
fclose($file);
}

Если проект обработан, то приходит ответ вида 4|ссылка. Как раз эта ссылка исп. для получения рез-та.

В коде который Вы прислали мы не нашли одну важную строку. В примерах она есть.

ini_set("soap.wsdl_cache_enabled", 0);

http://prntscr.com/cjsl48

Добавьте ее и попробуйте еще раз.

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

Если Вам будет удобно, пожалуйста, пишите ему на английском.

ini_set('soap.wsdl_cache_ttl',0);
ini_set('soap.wsdl_cache_enabled',0);
ini_set('default_socket_timeout', 120);

Это всё есть. Свяжемся с программистом все-таки, потому что проблема неясна.

Спасибо.

На нашей стороне ошибок сейчас нет, да и много других клиентов данные собирают.

Как будет возможность, просто напишите Мирославу. Он поможет все решить.

Здравствуйте!

Вам удалось решить проблему? Вы связались с нашим программистом?

У одного нашего клиента была похожая проблема. Удалось клиенту решить ее после перезапуска его системы.

Сервис поддержки клиентов работает на платформе UserEcho