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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Альтернативами являются:

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

[РЕДАКТИРОВАТЬ]

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

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

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

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

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