Поможет ли предоставление API-интерфейсов помешать очистке экрана? - PullRequest
7 голосов
/ 10 января 2009

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

Будете ли вы, как разработчик сайта, предоставлять простые API-интерфейсы для предотвращения скрепления экрана пользователями, например, результаты JSON?

Эти результаты могут затем реализовать кэширование, и они будут намного меньше для трафика, чем огромные объемы разметки, которые потенциально могут быть загружены.

Я не смотрю на профилактику, а на то, чтобы предотвратить соскоб.


Образец полосы пропускания соскоба
((пользователи * (% / 100)) * ((частота * 60) * 24)) * размер файла

  • пользователи: 200 000
  • % пользователей, использующих утилиту: 5
  • размер файла: 1 КБ
  • частота: 1 минута

Формула:

((пользователи * (% / 100)) * ((частота * 60) * 24)) * размер файла

10000 *1440* 1

14400000 КБ или 13,73291015625 ГБ

Предполагая, что ваш результат JSON составляет 200 байт, это сейчас (10 000 *1440* 0,2) или 2,74658203125 ГБ в день.

Это изменение около 11 ГБ трафика в день.


Для справки мой профиль переполнения стека равен 96 КБ.


Причиной для этого вопроса послужил запрос на получение результата JSON из профилей пользователей:
http://stackoverflow.uservoice.com/pages/general/suggestions/101342-add-json-for-user-information

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

Ответы [ 6 ]

6 голосов
/ 10 января 2009

Предоставление API должно определенно уменьшить количество скриншотов экрана, которые выполняются на вашем сайте. Использовать хороший REST API гораздо проще и безопаснее, чем соскоб с экрана. Экраны могут изменяться без предварительного уведомления, и это усложняет обслуживание кода очистки экрана. Как разработчик, если мне нужна информация с сайта, я бы никогда не просмотрел сайт, если бы та же информация была доступна через API.

1 голос
/ 10 января 2009

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

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

1 голос
/ 10 января 2009

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

1 голос
/ 10 января 2009

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

wget, perl, регулярные выражения - это общий механизм очистки данных.

0 голосов
/ 10 января 2009

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

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

Одним из наиболее распространенных инструментов для очистки, который трудно отклонить, является использование Excel или другого продукта, который делает очистку безболезненной.

Если ваше намерение состоит просто в том, чтобы минимизировать боль (которую можно вывести из вашего вопроса), то, безусловно, наиболее полезная вещь - это запросить их скребки - в любом случае, полезнее, чем запрос SO.

Вы можете зайти на woot.com и посмотреть, что они предоставляют в ленте RSS, чтобы разгрузить веб-сервер http.

0 голосов
/ 10 января 2009

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

...