X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Бессерверный парсер выдачи Google на Javascript
k0ttee
k0ttee
Topic Starter сообщение 23.12.2014, 13:46; Ответить: k0ttee
Сообщение #1


Когда что-то делаешь промышленно, после кучи запросов с одного IP рано или поздно вылезает капча. Допустим мы хотим сделать замечательный сервис парсинга выдачи гугла, но когда им будут пользоваться десятки юзеров - все испортят капчи.

На сервере у нас один IP. Можно докупить еще, но зачем? У нас же еще есть IP'шки клиентов, которые к нам заходят. :D
Сервер - машинка слабая (в сравнении с клиентскими компами), а брать мощный сервер дорого. Почему бы не использовать мощность зашедшего посетителя, у него в разы больше памяти и вообще...

Можно пилить не на серверном php, а на браузерном JS. Сие значит - все будет происходить по большей части в браузерах, а не на сервере. Так, сервис сможет работать даже на нищебродском бесплатном хостинге. :rjunimagu: Памяти хватит на любое количество потоков (свою память мы почти не тратим), да и капчи будут лезть для каждого клиента индивидуально (в зависимости от аппетита с его IP).

Сначала я попробовал подгружать гуглю через iframe - не получилось (в заголовках ответа сервера такое запрещено). Только в древнем IntrenetExplorer6 так можно - он не поддерживает запрета (но IE6 это древний ненужный недобраузер).

В гугле есть API для поиска средствами Javascript, так что можно парсить выдачу вообще без капчей. :smile-thumb-up:
Документация там на английском, но просто посмотрев на код можно понять что как делается.

Вот кусок кода оттуда с моими русифицированными комментами
<!--цепляем файл с гугля (хотя, можно руками сходить туда и скопировать себе в файл)-->
<script src="https://www.google.com/jsapi"></script>

<!--теперь пишем свои действия-->
<script>
    google.load('search','1') //гловское загрузить (поиск, 1 версии)

    //все внути функции (назвать можно как хочется)
    function i_want_find(){ //я обозвал "найти все что я хочу"
      var searchControl=new google.search.SearchControl(); //создаем новый контроль поиска

      //искать в регионе (задается ниже по коду)
      var localSearch = new google.search.LocalSearch();
      searchControl.addSearcher(localSearch);

      //поиски (какие хотим) - ненужное убрать
      searchControl.addSearcher(new google.search.WebSearch()); //обычный такой поиск в гугле
      searchControl.addSearcher(new google.search.VideoSearch()); //искать видяхи
      searchControl.addSearcher(new google.search.BlogSearch()); //рыться в блогах
      searchControl.addSearcher(new google.search.NewsSearch()); //найти повод для полит-срача в новостях
      searchControl.addSearcher(new google.search.ImageSearch()); //поиск картиночек
      searchControl.addSearcher(new google.search.BookSearch()); //книжки можно найти
      searchControl.addSearcher(new google.search.PatentSearch()); //поиск патентов (даже их)

      //задаем регион поиска для "искать в регионе" (смотри выше где используется)
      localSearch.setCenterPoint("New York, NY");

      //куда надо выводить результаты (я выведу в div с id='vihlop')
      searchControl.draw(document.getElementById("vihlop"));

      //повеливаю исполнить запрос и найти наше RuSeo
      searchControl.execute("ruseo.net");
    }

    google.setOnLoadCallback(i_want_find); //каллбэк длинной функции описанной выше
    </script>

<!--а тут у нас div для выхлопа в него-->
<div id="vihlop">Loading</div>


Можете сохранить себе в файл и увидите, что все поиски прекрасно работают вообще без сервера.

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

Яндекс такого не дает.

...Или я плохо искал. :unsure: Есть конечно https://xml.yandex.ru но там требуется рега и получение ключа для своего IP. Или заставлять юзеров получать ключи, или реализовывать на своем сервере.
Во втором случае плохо все: от того что нам понадобится сервер помощнее, до ограничения яндексом количества запросов (за расширение просят платить).
Короче, яндекс опять отстой.

У кого есть идеи "что парсить будем"? Я вообще искал технологию чтобы кэш гугла открывать без php, а описанным выше я такого проделать не смог.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 4.1.2015, 19:04; Ответить: k0ttee
Сообщение #2


Нашел кусок кода для парсинга XML средствами JS. На гуглокоде _https://code.google.com/p/rss-javascript/
Чуть позже приведу обширно прокомментированный кусок кода. Пока пишу просто ссылку (чтоб в избранном не затерялась).


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
maxsx
maxsx
сообщение 5.3.2015, 21:34; Ответить: maxsx
Сообщение #3


Если это работает, то огромный респект, а то везде написано что кроссдоменные запросы запрещены, все всё прячут, ничего не получить без авторизации.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 25.6.2016, 5:21; Ответить: k0ttee
Сообщение #4


это работает, то огромный респект

Конечно же работает, ведь сделано через гугловское API (запрос туда через JS разрешен и полностью белый).


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
сообщение 5.7.2016, 0:05; Ответить: prolisk
Сообщение #5


k0ttee, а сейчас работает?
 Для доступа к контенту вам необходимо иметь минимум 0 сообщений, сейчас у вас сообщений. 


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 5.7.2016, 5:04; Ответить: k0ttee
Сообщение #6


работает?

Не знаю... давно не пользовался. :unsure: А разве не работает?

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) ⭐⭐⭐ Google Voice | Gmail - OLD аккаунты "SMS и звонки" ⭐⭐⭐
12 Chekon 3815 24.3.2024, 13:56
автор: Chekon
Горячая тема (нет новых ответов) Google запускает новый браузер элементами искусственного интеллекта
38 arendator 13310 21.3.2024, 18:10
автор: Rebex
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыA-Parser 1.1 - продвинутый парсер ПС, кейвордов, контента, показателей, 70+ парсеров.
352 Forbidden 278213 21.3.2024, 14:38
автор: AParser_Support
Открытая тема (нет новых ответов) Сайт не индексируется в Google без добавления ссылок в адурилку
4 Nekit 988 20.3.2024, 21:44
автор: MorKer
Открытая тема (нет новых ответов) Если статья не в индексе Google - она уникальна или нет?
2 uahomka 798 20.3.2024, 11:17
автор: Vmir


 



RSS Текстовая версия Сейчас: 28.3.2024, 23:36
Дизайн