2015-07-23 5 views
11

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

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

+0

Отправка случайной строки 'user-agent' работает для меня всегда, я не получаю запрет. Даже если я получу, я изменю свой IP. Или вы можете использовать Selinium для генерации полного браузера. – Umair

+0

Вы делаете сотни запросов в минуту? Я говорю об этом большом объеме. Я знаю о пользователе-агенте, его просто, но IP? – 3zzy

+0

Да, я делаю 100 запросов в минуту, почему бы не планировать VPN для изменения вашего IP-адреса на регулярном интервале, если вы заблокированы. http://www.adeepbite.com/hidemyass-vpn-review/#Schedule_IP_Address_Change – Umair

ответ

23

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

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

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

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

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

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

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

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

+0

Плагины браузера Javascript? Вы имеете в виду расширения браузера в Chrome и Mozilla? Я в порядке с Java, потому что все, что мне нужно, это HTML страницы, обработка выполняется на стороне сервера. И нет, это не незаконно. У поставщиков просто нет API, и те, кто это делает, не предоставляют контент, который мне нужен. – 3zzy

+0

Luminati приятно, но $ 1000? Черт! Btw, java - это вариант, любые другие альтернативы? Может ли вспышка очистить содержимое? – 3zzy

+0

@ 3zzy Итак, владелец веб-сайта запрещает вас случайно? ;) –

3

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

всех решений думает о первом:

jQuery/JavaScript: accessing contents of an iframe

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

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

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

[EDIT]

Еще одно решение, которое я могу думать о использует проходящие через YQL службы, таким образом, это немного похоже на использование поисковой системы/public proxy как мост для получения информации для вас. Here is a simple example to do so, Короче говоря, вы получите крест GET домен запрашивает

+0

Что это: http://www.slideshare.net/SlexAxton/breaking-the-cross-domain-barrier? – 3zzy

+0

@ 3zzy Я не знал о том, что Document.domain hacks (стр. 30) звучит интересно, другие альтернативы в основном предназначены для доступа к службам, а не ко всей странице. BTW Я добавил еще одно решение, проходящее через YQL, может быть ответом. У вас нет гибкости iFrame, не ожидайте, чтобы ни одна страница не отображала все CSS на клиенте, но, по крайней мере, у вас есть что-то, запускаемое в браузере клиента, без необходимости настраивать собственное реле. –

+0

YQL по-прежнему является прокси-сервером, хотя вместо этого он будет использовать IP-адрес Yahoo, и это может быть потенциально заблокировано, если я сделаю много запросов. Я ищу надежное решение. – 3zzy

2

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

+0

Вы используете их для случайного выскабливания или нескольких сотен запросов/мин? – 3zzy

+0

Чтобы быть честным, мы используем их только для случайных выскабливаний (в основном, для финансовых данных). Это работает безупречно. На своем сайте он читает, что собирает 10 миллионов записей в день. Это составляет 115 записей в секунду. Не для одного сайта, конечно, но все же они очень надежны и бесплатны (несмотря на мое продвижение, у меня нет никаких запасов ;-) – Jan

+0

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

1

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

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

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

+0

Artoo - отличный инструмент для получения данных, когда вы уже находитесь на веб-сайте, но это не позволит вам систематически царапать, что, по моему мнению, является тем, что было после этого. – 10basetom

Смежные вопросы