Подтвердить что ты не робот

Скребок на стороне клиента на основе браузера

Интересно, возможно ли его очистить внешнюю (междоменную) страницу через IP-адрес пользователя?

Для сайта сравнения покупок мне нужно очистить страницы сайта e-com, но несколько запросов с сервера заставят меня заблокировать, поэтому я ищу способы сделать очистку на стороне клиента - то есть страницы запроса от пользователя IP и отправить сервер для обработки.

4b9b3361

Ответ 1

Нет, вы не сможете использовать браузер своих клиентов для очистки содержимого с других сайтов с помощью JavaScript из-за меры безопасности, называемой Same- происхождения.

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

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

Adobe Flash имеет аналогичные функции безопасности, но я думаю, вы могли бы использовать Java (а не JavaScript) для создания веб-скребка, который использует ваш IP-адрес пользователя. Опять же, вы, вероятно, не хотите этого делать, поскольку плагины Java считаются небезопасными (и медленными для загрузки!), И не все пользователи даже смогут его установить.

Итак, вернемся к вашей проблеме:

Мне нужно очистить страницы сайта e-com, но несколько запросов с сервера заставят меня запретить.

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

Если вы находитесь на "темной стороне закона" и не заботитесь о том, что это незаконно или нет, вы можете использовать что-то вроде http://luminati.io/, чтобы использовать IP-адреса реальных людей.

Ответ 2

В основном браузеры сделаны, чтобы избежать этого...

Решение, о котором каждый думает в первую очередь:

jQuery/JavaScript: доступ к содержимому iframe

Но в большинстве случаев он не будет работать с "недавними" браузерами (< 10 лет)

Альтернативы:

  • Использование официального apis сервера (если есть)
  • Попробуйте найти, поддерживает ли сервер службу JSONP (удачи)
  • Находясь в том же домене, попробуйте создать скриптовый скрипт (если возможно, не очень этический)
  • Использование доверенного реле или прокси (но это все равно будет использовать ваш собственный ip)
  • Предполагает, что вы являетесь искателем веб-сайта google (почему бы и нет, но не очень надежны и никаких гарантий относительно этого).
  • Используйте хак для настройки реле/​​прокси на самом клиенте, я могу думать о java или, возможно, flash. (не будет работать на большинстве мобильных устройств, медленнее, а флеш тоже имеет свои собственные ограничения на кросс-сайты)
  • Попросите Google или другую поисковую систему для получения контента (у вас может возникнуть проблема с поисковой системой, если вы злоупотребляете ею).
  • Просто выполните эту работу самостоятельно и кешируйте ответ, чтобы разгрузить их сервер и уменьшить риск быть заблокированным.
  • Индексируйте сайт самостоятельно (свой собственный веб-искатель), а затем используйте свой собственный проиндексированный веб-сайт. (зависит от частоты изменения источника) http://www.quora.com/How-can-I-build-a-web-crawler-from-scratch

[EDIT]

Еще одно решение, о котором я могу думать, заключается в использовании службы YQL, таким образом, это немного похоже на использование поисковая система/публичный прокси-сервер в качестве моста для получения информации для вас. Вот простой пример для этого. Короче говоря, вы получаете кросс-доменные запросы GET

Ответ 3

Посмотрите http://import.io, они предоставляют пару сканеров, соединителей и экстракторов. Я не очень уверен, как они обошли запреты, но они что-то делают (мы используем их систему уже год без каких-либо проблем).

Ответ 4

Вы можете создать расширение браузера с помощью artoo.

http://medialab.github.io/artoo/chrome/

Это позволит вам обойти те же ограничения политики orgin. Это все javascript и на стороне клиента.