API Сервиса Комплексного Анализа сайтов

Автор Sevab, 17-10-2013, 10:50:35

« назад - далее »

SevabTopic starter

UPD от 08.12.2016:

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

----------------------------------------------------------------------

Друзья, по многочисленным просьбам команда разработчиков сервиса комплексного анализа сайтов (или сразу сюда) создала API для получения данных сервиса программным путем.
Формат получаемых данных - JSON.






Обращаю внимание, данные отдаются в UTF-8 кодировке.
Если в ответе сервера будут присутствовать не латинские буквы (напр. имя домена президент.рф), а ваш сайт (скрипт) работает в кодировке отличной от UTF-8 (напр. windows-1251, кириллица), то вам придется конвертировать полученные данные в свою кодировку. На PHP это можно сделать с помощью функции iconv.
Тоже самое касается ваших запросов. Если в запросе присутствуют не латинские символы, то запрос должен быть в UTF-8 кодировке.

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


Какие данные вы получаете?

Вы получите 9 основных характеристик сайтов, прошедших комплексный анализ нашим сервисом. Это:

'page_rank' => PageRank главной страницы
'page_rank_real' => Реальный ПР сайта
'trust_rank' => Траст (уровень доверия) сайта
'yandex_rank' => Яндекс рэнк (от нуля до шести)
'yandex_tic' => Яндекс тИЦ
'value_site' => Примерная стоимость сайта
'alexa_rank' => Алекса рейтинг.
'alexa_2_level' => Этот параметр важен только для поддоменов. Если у поддомена алекса рейтинг отличен (редкий случай) от вышестоящего домена, то значение будет 1, иначе 0. Т.е. если значение этого параметра 1, то алекса реальный, если ноль, то рейтинг алексы можно не учитывать.
'spam_links' => Заспамленность сайта. Измеряется от нуля до 100 процентов, либо значение na (не определено, т.е. недостаточно данных для определения).


Каким образом можно получить доступ к API?

Не смотря на то, что сервис совершенно бесплатный, есть некоторые ограничения.

1) Доступ к интерфейсу предоставляется только различным онлайн сервисам, сайтам, либо программным продуктам.
Для личного пользования будет онлайн сервис на текущем сайте, а этот интерфейс только для сторонних сервисов.

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

3) Если вы собираетесь встроить данные сервиса в ваш программный продукт, пожалуйста опишите в каком виде будет представлена информация о получаемых данных с нашего сайта.

4) Если вышеуказанные пункты будут выполнены, вы получите пару логин-пароль для доступа к API.

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


Как получать данные?

Сервис работает только с POST запросами. В запросе не более 50 доменов за один раз. Дальше привожу примеры на PHP.
Вы должны послать одномерный массив доменов.
Это может быть что-то вроде:
$check_sites[0] = 'seobuilding.ru';
$check_sites[1] = 'seomastering.com';
$check_sites[2] = 'trustdirectory.org';

или

$check_sites[] = 'seobuilding.ru';
$check_sites[] = 'seomastering.com';
$check_sites[] = 'trustdirectory.org';

Или другим путем полученный массив доменов.
Если массив получен примерно как в примерах выше, перед запросом его (массив) нужно перевернуть, т.е. поменять местами ключи и значения, т.к. POST запросом цифровые ключи не передаются. Пример:
$check_sites = array_flip($check_sites);

Ниже полный рабочий скрипт доступа к API через cURL:


<?php
//echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';

function get_mass_trust ($url$check_sites$loginpassw) {// Функция доступа к API

if (function_exists("curl_init")) {
$ch curl_init();
curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_RETURNTRANSFER1); // output to variable
curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);

curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$check_sites);
curl_setopt($chCURLOPT_USERPWD$loginpassw);

//даёшь gzip!
curl_setopt($chCURLOPT_HTTPHEADER, array('Accept-Encoding: gzip,deflate'));
//раскодируем gzip на лету
curl_setopt($chCURLOPT_ENCODING'gzip,deflate');

curl_setopt($chCURLOPT_TIMEOUT10);
$data curl_exec($ch);
    curl_close($ch);

return $data;

        
} else {
return false;
}
}

$url "http://www.sbup.com/api.php"// Адрес API
$loginpassw 'test@somesite.ru:sdwerwdf'// Ваш логин и пароль через двоеточие

$check_sites file("path_to_folder/check_sites.txt"FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES); // Массив доменов из файла. 
/*
Можно использовать любой другой простой одномерный массив доменов. Например:
$check_sites[0] = 'seobuilding.ru';
$check_sites[1] = 'seomastering.com';
$check_sites[2] = 'trustdirectory.org';

или

$check_sites[] = 'seobuilding.ru';
$check_sites[] = 'seomastering.com';
$check_sites[] = 'trustdirectory.org';

*/

$check_sites array_flip($check_sites); // POST запросом цифровые ключи не передадутся, поэтому меняем местами ключи и значения

$mass_data get_mass_trust ($url$check_sites$loginpassw); // Соединяемся с сервером и посылаем ему массив проверяемых доменов.

if (!$mass_data) {
// Нет соединения с сервером, либо вы не послали пару логин-пароль и (или) массив доменов
}
else {
$mass_data_json json_decode($mass_datatrue); // Ответ будет в JSON формате, поэтому преобразовываем ответ в массив
if (!$mass_data_json) {
// Что-то пошло не так
}
else {
if ($mass_data_json['error']) { // Ошибка
var_dump($mass_data_json); // Выводим ошибку на экран, либо делаем что-то другое с ней.
/* Коды ошибок

'domains_not_in_db' - Ни один из представленных доменом не находится в базе данных. Т.е. нужно проверять вручную через сервис

'wrong_domain_names' - Неправильные имена доменов. Например seobuildi+ng.ru

'try_in_one_second' - Запросы не чаще чем 1 раз в полсекунды. Попробуйте через секунду.

'wrong_login_or_password' - Неправильный логин или пароль

'try_again_in_24_hours' - Больше 10 неудачных попыток входа (неправильный логин или пароль). Вход с вашего IP блокируется на 24 часа.

'wrong_login_try_in_3_seconds' - Неправильный логин или пароль и частота неправильных запросов чаще одного раза в три секунды. Попробуйте через 3 секунды.
*/
}
else {
//var_dump($mass_data_json); // Делаем что-то с полученным массивом, например выводим на экран.

// Или разбираем его по частям

foreach ($mass_data_json as $key => $value) {
if (!is_array($value)) {
// Если данные по домену не являются массивом, значит что-то не так. Смотрим что
// 'no_in_db' - домена нет в базе данных. Если нужно, проверяем через сервис вручную
// 'limit_exceed' - Порядковый номер домена в массиве больше 50. За один раз можно проверять не более 50 доменов

echo "<br>Домен $key - $value<br>";
}
else {
echo "<br>Данные по домену $key<br>";
// Выводим данные по конкретному домену массивом
//var_dump($value);

// Или разбираем данные по частям
foreach ($value as $k => $v) {
echo "$k - $v<br>";
}
}
}
}
}
}

?>
   


Разбираем работу скрипта.

Соединяемся с сервисом с помощью функции get_mass_trust, которая использует curl для доступа к API, посылки данных (массива доменов) и пары логин:пароль, а также получения ответа в JSON формате.

В принципе, в вышеупомянутом скрипте все подробно объяснено, поэтому повторяться смысла нет. Обращу лишь внимание на некоторые нюансы.

1) Если ответа нет, либо он не в формате массива, значит что-то пошло не так. Смотрите пояснения в скрипте.

2) Коды ошибок:
'domains_not_in_db' - Ни один из представленных доменом не находится в базе данных. Т.е. нужно проверять вручную через сервис

'wrong_domain_names' - Неправильные имена доменов. Например seobuildi+ng.ru

'try_in_one_second' - Запросы не чаще чем 1 раз в полсекунды. Попробуйте через секунду.

'wrong_login_or_password' - Неправильный логин или пароль

'try_again_in_24_hours' - Больше 10 неудачных попыток входа (неправильный логин или пароль). Вход с вашего IP блокируется на 24 часа.

'wrong_login_try_in_3_seconds' - Неправильный логин или пароль и частота неправильных запросов чаще одного раза в три секунды. Попробуйте через 3 секунды.

3) Сам ответ будет в формате массива, где ключами будут имена доменов, а значениями массивы вышеперечисленных пузомерок и других параметров сайта. Например:

array
  'seobuilding.ru' =>
    array
      'page_rank' => string '4' (length=1)
      'page_rank_real' => string '6.27' (length=4)
      'trust_rank' => string '7.15' (length=4)
      'yandex_rank' => string '4' (length=1)
      'yandex_tic' => string '300' (length=3)
      'value_site' => string '617636' (length=6)
      'alexa_rank' => string '1600' (length=4)
      'alexa_2_level' => string '1' (length=1)
      'spam_links' => string '6.39' (length=4)
  'seomastering.com' =>
    array
      'page_rank' => string '4' (length=1)
      'page_rank_real' => string '7.19' (length=4)
      'trust_rank' => string '8.21' (length=4)
      'yandex_rank' => string '2' (length=1)
      'yandex_tic' => string '10' (length=2)
      'value_site' => string '993245' (length=6)
      'alexa_rank' => string '2436' (length=4)
      'alexa_2_level' => string '1' (length=1)
      'spam_links' => string '14.55' (length=5)
  'trustdirectory.org' =>
    array
      'page_rank' => string '4' (length=1)
      'page_rank_real' => string '5.08' (length=4)
      'trust_rank' => string '5.17' (length=4)
      'yandex_rank' => string '2' (length=1)
      'yandex_tic' => string '20' (length=2)
      'value_site' => string '31903' (length=5)
      'alexa_rank' => string '17139' (length=5)
      'alexa_2_level' => string '1' (length=1)
      'spam_links' => string '2.46' (length=4)
  'президент.рф' =>
    array
      'page_rank' => string '7' (length=1)
      'page_rank_real' => string '7.00' (length=4)
      'trust_rank' => string '4.10' (length=4)
      'yandex_rank' => string '6' (length=1)
      'yandex_tic' => string '25000' (length=5)
      'value_site' => string '32720' (length=5)
      'alexa_rank' => string '821211' (length=6)
      'alexa_2_level' => string '1' (length=1)
      'spam_links' => string '100.00' (length=6)
  'somesitetatata.ru' => string 'no_in_db' (length=8)
  'lastmoments.ru' => string 'limit_exceed' (length=12)
  'myscore.ru' => string 'limit_exceed' (length=12)


В этом пункте обращу внимание на два возможных значения домена, которые не являются массивами.
   а) 'no_in_db' - Домена нет в базе данных. Значит его сначала нужно проверить нашим сервисом.
   б) 'limit_exceed'. Дело в том, что за один раз можно проверять не более 50 доменов. Все что больше, будет иметь это значение.


UPD:
Ниже скрипт работы с АПИ на python от Глеба с сайта http://www.rodinalinkov.ru/ (скрипт уже работает на этом сайте):

# -*- coding: utf-8 -*-
import requests
import logging

logger = logging.getLogger('sb_api.Sbapi')


class SBapiException(Exception):
    '''A wrapper so that we can catch our own errors'''


class Sbapi:

    # The base url we request from
    base = 'http://www.sbup.com/api.php'

    def __init__(self, login, secret_pass):
        self.login = login
        self.secret_pass = secret_pass

    def query(self, data=None):
        if not data:
            return {u'error': u'domains_null'}
        try:
            rdata = dict(zip(data, range(len(data))))
            res = requests.post(self.base, data=rdata, auth=(self.login, self.secret_pass))
        except requests.HTTPError, err:
            raise SBapiException(err)
        return res.json()

    def get_domains_params(self, domains=[]):
        try:
            res = self.query(domains)
        except SBapiException, err:
            logger.error(u"SBapiException: %(domains)s -> %(error)s" % {u"error": err, u"domains": domains})

        if res.get('error', None):
            return UMErrors().get_mess(res)
        return res

    def get_domain_params(self, domain):
        try:
            res = self.query([domain])
        except SBapiException, err:
            logger.error(u"SBapiException: %(domains)s -> %(error)s" % {u"error": err, u"domains": domain})

        if res.get('error', None):
            return UMErrors().get_mess(res)
        return res.get(domain)


class UMErrors:
    domains_null = u"Передано Null доменов"
    domains_not_in_db = u"Ни один из представленных доменом не находится в базе данных."
    wrong_domain_names = u"Неправильные имена доменов."
    try_in_one_second = u"Запросы не чаще чем 1 раз в полсекунды. Попробуйте через секунду."
    wrong_login_or_password = u"Неправильный логин или пароль."
    try_again_in_24_hours = u"Больше 10 неудачных попыток входа (неправильный логин или пароль). Вход с вашего IP блокируется на 24 часа."
    wrong_login_try_in_3_seconds = u"Неправильный логин или пароль и частота неправильных запросов чаще одного раза в три секунды. Попробуйте через 3 секунды."

    def get_mess(self, res):
        err = res.get('error')
        if hasattr(self, err):
            res.update({'mess': getattr(self, err)})
        return res

#===============================================================================
# TESTS
#===============================================================================
import unittest
import time


class Test(unittest.TestCase):

    def setUp(self):
        self.main_obj = Sbapi('login', 'password')

    def tearDown(self):
        pass

    def testOneDomen(self):
        time.sleep(0.5)
        res = self.main_obj.get_domain_params('seobuilding.ru')
        self.assertTrue(int(res['yandex_tic']) > 50)

    def testListDomens(self):
        time.sleep(0.5)
        res = self.main_obj.get_domains_params(['seobuilding.ru', 'seomastering.com', 'trustdirectory.org'])
        self.assertTrue(int(res['seobuilding.ru']['yandex_tic']) > 299)
        self.assertTrue(int(res['trustdirectory.org']['yandex_tic']) >= 20)

    def testNoDomen(self):
        time.sleep(0.5)
        res = self.main_obj.get_domain_params('not_exist-domain.ru')
        self.assertEqual(res['error'], u'domains_not_in_db')

    def testNullDomen(self):
        time.sleep(0.5)
        res = self.main_obj.get_domains_params()
        self.assertEqual(res['error'], u'domains_null')

if __name__ == "__main__":
    unittest.main()



По работе скрипта все. Если кто разработает скрипт доступа к API на другом (не PHP) языке, пожалуйста предоставьте его. Помещу скрипт в это сообщение, чтобы другие пользователи могли им воспользоваться.


Жду ваши замечания и предложения по работе сервиса.





ПС.
Ближайшие две недели будет разработан расширенный API, с помощью которого можно будет получать 40-60 параметров сайта.
На основе обоих программных интерфейсов будет запущен онлайн сервис (на этом сайте) по массовому получению и сравнению характеристик сайтов. До 50 сайтов за один раз.

Онлайн сервис будет бесплатным (это без вариантов), а вот программный доступ к расширенному API бесплатным сделать не получиться, т.к. массовые сложные (ведь данных будет не 9, а 40-60) запросы достаточно накладны.

Поэтому у меня есть к вам вопрос по разрабатываемому расширенному (до 60 параметров сайта) API.
Какая может быть нормальная (приемлемая) цена за запрос по одному (но запрашивать можно будет сразу до 50) домену?

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


PS.PS.
Сервис массовой проверки уже готов. Скоро будет готово API-PRO.


remind4me

#1
Sevab, отличный API !!!
Я немного прoтестил, с сервера Москвы и Минска - данные получил практически мгновенно!
Вот пример одного из отчетов:

[spoiler]Данные по домену tut.by
page_rank - 6
page_rank_real - 7.84
trust_rank - 8.95
yandex_rank - 6
yandex_tic - 10000
value_site - 5425449
alexa_rank - 1728
alexa_2_level - 1
spam_links - na

Данные по домену seobuilding.ru
page_rank - 4
page_rank_real - 6.28
trust_rank - 7.16
yandex_rank - 4
yandex_tic - 300
value_site - 536565
alexa_rank - 1602
alexa_2_level - 1
spam_links - 6.38

Данные по домену 4remind.ru
page_rank - 2
page_rank_real - 4.40
trust_rank - 2.37
yandex_rank - 2
yandex_tic - 10
value_site - 2198
alexa_rank - 114037
alexa_2_level - 1
spam_links - 16.78[/spoiler]

Попробовал несколько кириллических доменов, но ни одного из них нет в базе, всегда был ответ типа: Домен русские-домены.рф - no_in_db
что собственно и должно происходить, главное, что API отрабатывает без сбоев.

Добавлено: 19-10-2013, 21:12:45


Еще один тест.

1. Если я ввожу в скрипте два домена, первый из которых на латинице (moscow.ru), т.е. не кириллический, а второй кириллический (россия.рф), то на выходе все отлично:

[spoiler]Данные по домену moscow.ru
page_rank - 6
page_rank_real - 6.00
trust_rank - 4.00
yandex_rank - 4
yandex_tic - 190
value_site - 15458
alexa_rank - 473424
alexa_2_level - 1
spam_links - 17.53

Домен россия.рф - no_in_db[/spoiler]

2. Если я ввожу только один домен на латинице, то опять же все в порядке:

[spoiler]Данные по домену moscow.ru
page_rank - 6
page_rank_real - 6.00
trust_rank - 4.00
yandex_rank - 4
yandex_tic - 190
value_site - 15458
alexa_rank - 473424
alexa_2_level - 1
spam_links - 17.53[/spoiler]

3. Но, если я ввожу только один кириллический домен, например россия.рф, то на выходе уже не совсем приемлемый вид, вот такой:

[spoiler]array(1) { ["error"]=> string(17) "domains_not_in_db" } [/spoiler]



Добавлено: 19-10-2013, 21:18:19


Следующий тест.

Проанализировал сайт россия.рф через онлайн сервис, он естественно уже попал в базу, и теперь на выходе API все отлично:

[spoiler]Данные по домену moscow.ru
page_rank - 6
page_rank_real - 6.00
trust_rank - 4.00
yandex_rank - 4
yandex_tic - 190
value_site - 15458
alexa_rank - 473424
alexa_2_level - 1
spam_links - 17.53

Данные по домену россия.рф
page_rank - 7
page_rank_real - 7.00
trust_rank - 1.03
yandex_rank - 6
yandex_tic - 61000
value_site - 5329
alexa_rank - 7809087
alexa_2_level - 1
spam_links - 100.00[/spoiler]

И даже если в скрипт теперь вносил только один кириллический домен, который уже есть в базе, то все ОК:

[spoiler]Данные по домену россия.рф
page_rank - 7
page_rank_real - 7.00
trust_rank - 1.03
yandex_rank - 6
yandex_tic - 61000
value_site - 5329
alexa_rank - 7809087
alexa_2_level - 1
spam_links - 100.00[/spoiler]


Chiliec

Спасибо за API, очень нужная штука! В будущем планирую использовать ;)
Хотелось бы еще получать дату получения этих показателей.

Цитата: Sevab от 17-10-2013, 10:50:35Какая может быть нормальная (приемлемая) цена за запрос по одному (но запрашивать можно будет сразу до 50) домену?
Естественно, что чем дешевле - тем лучше. Лучше всего по накладным расходам рассчитать (рассматриваю с точки зрения потребителя).

А вообще я бы предложил сделать платным добавление сайтов на обновление, а получение этих показателей бесплатным (ведь с обновлением показателей и связаны расходы). А получать данные полугодовой давности бесплатно или заплатить за их актуализацию - пусть каждый решает сам. Как идея? :D

remind4me

Эх, жаль, что API не для каждого - вещица очень полезная :)
Теоретически можно было бы наверное дать возможность размещать на персональных сайтах, но с такой конфигурацией для логина/пароля (аккаунта), что доступ к данным API был бы возможен лишь 1-2 раза в сутки максимум.
Иначе, если все кому не лень понаставят код на свои сайты, то это может вылиться во что-то подобное DDoS атакам :)
(это так, к слову, ведь я конечно же не знаю, и даже не догадываюсь, насколько сервер с API устойчив к ним)

Ryar

По стоимости хороши цены у recipdonor.com (RDS бар).

  •  


SevabTopic starter

#5
Цитата: remind4me от 19-10-2013, 20:52:53domains_not_in_db

Это значит, что ни один из представленных доменов не присутствует в базе данных. Т.е. если запрос был всего по одному домену (можно до 50), то в случае отсутствия в БД, будет такой ответ. Если все 10 (или 50) отсутствуют, то тоже будет такой ответ. Если хоть один присутствует, то для отсутствующих будет no_in_db.


Цитата: remind4me от 19-10-2013, 20:52:53даже если в скрипт теперь вносил только один кириллический домен, который уже есть в базе, то все ОК

Да, все правильно. Хочу лишь пояснить, что запрашивать кириллические домены можно в любой форме. Например президент.рф или xn--d1abbgf6aiiy.xn--p1ai.
Скрипт и так и так поймет. Единственное, на кириллице нужно обязательно посылать запрос в utf-8 кодировке.
Ну и ответ всегда будет в utf-8. Поэтому если у вас другая кодировка, нужно конвертировать (в первом сообщении есть пояснения).


Цитата: Chiliec от 19-10-2013, 21:28:41Хотелось бы еще получать дату получения этих показателей.

Спасибо за подсказку :). Наверное в ПРО версии сделаем, т.к. дата последней проверки есть БД.


Цитата: Chiliec от 19-10-2013, 21:28:41А вообще я бы предложил сделать платным добавление сайтов на обновление, а получение этих показателей бесплатным. Как идея?

Идея хорошая, но нарушает основную идеологию сервиса. Все должно быть бесплатным. Мы и платность вводим не ради денег :). Ниже поясню.


Цитата: Ryar от 19-10-2013, 23:41:26По стоимости хороши цены у recipdonor.com

Да, поизучал цены других сервисов. У рдс вроде цены за каждый в отдельности показатель, а мы будет выдавать сразу все (пакетом) по каждому сайту.

Хочу еще раз пояснить с платностью ПРО версии АПИ (в данной теме представлена обычная, бесплатная версия).
Во первых, будет (дней через 10-15) абсолютно бесплатный онлайн сервис получения и сравнения характеристик сайтов (до 50 ресурсов одновременно).
Т.е. это будет 100% совпадение с версией API-PRO. Поэтому любой желающий сможет получить совершенно бесплатно те же самые показатели, что и через АПИ-ПРО.

Раз такое дело, почему бы и АПИ-ПРО не сделать таким же бесплатным, как обычное апи, описанное в первом сообщении этой темы?
Потому что:
Цитата: remind4me от 19-10-2013, 21:32:35все кому не лень понаставят код на свои сайты, то это может вылиться во что-то подобное DDoS атакам

С апи-про не собираюсь зарабатывать огромные деньги. Цена вводится лишь как фильтр запросов (чтобы их не было очень много).
В любой момент можно будет получить те же данные бесплатно в онлайн сервисе.
Но, т.к. все равно у меня будут требовать это АПИ, мы его сделаем, но платным (не ради денег, а лишь как ограничение количества запросов). Цена в любом случае не должна быть высокой.

Как думаете, если за запрос по одному сайту (примерно 60-80 параметров) максимальная цена будет 5 копеек. И она будет падать (в зависимости от разовой оплаты) до минимальной в 2 копейки за один запрос по одному сайту.
Это нормальная цена будет?
Запросы по сайтам, которых нет в БД, естественно учитываться не будут.



remind4me

Цитата: Sevab от 20-10-2013, 18:29:39Это значит, что ни один из представленных доменов не присутствует в базе данных.
Я понял это еще перед тестами, почитав первое сообщение и комментарии в скрипте.

Цитата: Sevab от 20-10-2013, 18:29:39Единственное, на кириллице нужно обязательно посылать запрос в utf-8 кодировке.
Само собой, ведь и сам скрипт в кодировке utf-8, да в нем и вверху есть строка с намеком, что нужно кодировка utf-8.

Цитата: Sevab от 20-10-2013, 18:29:39Как думаете, если за запрос по одному сайту (примерно 60-80 параметров) максимальная цена будет 5 копеек. И она будет падать (в зависимости от разовой оплаты) до минимальной в 2 копейки за один запрос по одному сайту.
Это нормальная цена будет?
Да ну, Sevab, это же смешно - ставить цену нужно чуть побольше.
Если уж у кого-то куча сайтов, то однозначно у него и денежка есть.
Я не намекаю, что нужно косить деньги по максимуму, но просто думаю для Про версии (примерно 60-80 параметров, или может и больше будет) стоит сделать ставку побольше, чем 5 копеек.
Нуждающиеся в таком количестве характеристик возможно и сами донатить будут.


Robin Hood

Есть форма

<form>
<input type="text" id="analizer" />
<input type="button" value="Анилиз сайта" onClick="analizer()" />
</form>

Есть готовый код который вы привели в начале, как к нему обратиться с помощью формы?
  •  


remind4me

#8
Robin Hood, в тэг <form> нужно добавить параметр "action"

-------
<form action="http://ваш-сайт/seobuilding-api.php" method="post" accept-charset="UTF-8">
-------

где seobuilding-api.php - это скрипт, содержащий запрос к API и вывод данных на кран (или в файл, как тебе угодно), т.е. к примеру готовый код, который приведен в пример в первом сообщении этой темы.


Robin Hood

#9
Так выходит что инфа на момент проверки уже вполне может быть устаревшей? То есть это просто доступ к архиву данных?

Добавлено: 26-10-2013, 15:38:51


А как разобрать масив? Мне например подпись "yandex_tic" не нравится и я хочу переименовать в ТИЦ а не tic. как это сделать? Может кто статью по подробнее напишет?
  •