Автор Тема: Парсер поисковика  (Прочитано 8161 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DeltaSoft

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 33
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Парсер поисковика
« : 07 Сентября 2006, 12:34:41 »
Задачка такая:
Есть 10000 запросов нужно собрирать каждый день по каждому запросу первые 20 адресов сайтов, которые выдает поисковик (Google, Yandex ...).

Закидывать всю инфу в БД, так чтобы потом к ней можно было пределать хороший интерфейс.

Накидайте плиз как подобные вещи лучше делать...
« Последнее редактирование: 07 Сентября 2006, 13:05:10 от DeltaSoft »
Вакансия: Программист WEB+UNIX
 Вакансия: Программист Windows  Вакансия: WEB-разработчик[

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Парсер поисковика
« Ответ #1 : 07 Сентября 2006, 12:42:16 »
заказываете у профессионального программиста.

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Парсер поисковика
« Ответ #2 : 07 Сентября 2006, 13:57:27 »
получите в лоб и от поисковиков и от хостера
слишком много запросов, читайте правила поисковиков
0 OK, 0:1

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Парсер поисковика
« Ответ #3 : 07 Сентября 2006, 14:03:02 »
google разрешает в день 1000 запросов через свой апи,
а 10000 запросов яндекс не завалят.

про хостеров ничего не сказано.

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Парсер поисковика
« Ответ #4 : 07 Сентября 2006, 15:09:31 »
Цитировать
google разрешает в день 1000 запросов через свой апи,

возможно
итого 10000 / 1000 = 10 ip (это если не делать повторных запросов в случае неудачи)

Цитировать
а 10000 запросов яндекс не завалят.

разрешено до 200 запросов в сутки,
если сильно превысить, обратят внимание

Цитировать
про хостеров ничего не сказано.

конечно,
но хостер тоже в лоб получит ; )
0 OK, 0:1

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Парсер поисковика
« Ответ #5 : 07 Сентября 2006, 15:18:01 »
гугл не по ип определяет, а по ключу.

а из-за ната людям как быть?

и, как я понял, 10000 размазны по поисковикам.

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Парсер поисковика
« Ответ #6 : 07 Сентября 2006, 15:47:09 »
Цитировать
гугл не по ип определяет, а по ключу.

?

Цитировать
а из-за ната людям как быть?

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

Цитировать
и, как я понял, 10000 размазны по поисковикам.

имхо: всё равно много
0 OK, 0:1

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Парсер поисковика
« Ответ #7 : 07 Сентября 2006, 15:57:32 »
надо зарегистрироваться на гугле, он выдаст ключь, по которому происходит доступ череь апи к запросам.

вычисления робот/человек по мне так достаточно сложно в данном случае.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Парсер поисковика
« Ответ #8 : 07 Сентября 2006, 16:44:05 »
Господа,
и у гугля, и у Яндекса максимальный бесплатный лимит - 1000 q/d. "Платного" у гугля нет вообще.
Таким образом, задача лицензированными средствами не решаема.

[moderatorial]
Внимательно слежу за этой темой, поскольку есть "душок" серого SEO.
LJ: Backslashed life (rss)

Оффлайн ipchains

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ipchains.ru
Парсер поисковика
« Ответ #9 : 14 Сентября 2006, 17:41:04 »
вообще должно сработать...


use Socket;
my $term_escaped $ARGV[0];
my $proto getprotobyname(\'tcp\');
my $host = "www.google.ru";
my $port = 80;
my $request = sprintf("GET /search?q=%s HTTP/1.1
Accept: */*
AcceptCharset: *
Accept-Language: ru
Host: $host
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Proxy-Connection: Keep-Alive



", $term_escaped);
      socket(SOCK, PF_INET, SOCK_STREAM, $proto);
      my $iaddr = gethostbyname($host);
      my $paddr = sockaddr_in($port, $iaddr);
      connect(SOCK, $paddr);
      my $old_fh = select(SOCK);
      $| = 1;
      select($old_fh);

      print SOCK $request;
      while(<SOCK>){
       push(@results, $1) if /<a.*class=l.*href=\\"(\\S+)\\".*>.*<\\/a>.*/;
#      my @results = <SOCK>;
      }
      my $i = 1; my $max = 5;
      while ($i <= $max) {
        printf("%s" ,$results[$i]));
        $i++;
      }

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Парсер поисковика
« Ответ #10 : 14 Сентября 2006, 18:37:20 »
нарвешься на Transfer-Encoding: chunked

смени HTTP/1.1 --> HTTP/1.0 либо обрабатывай принятое согласно версии протокола

ссылки по теме
perldoc strict;
perldoc warnings;
perldoc LWP
perldoc LWP::Simple
perldoc IO::Socket;
perldoc HTTP::Headers;
perldoc Stream::Reader;
0 OK, 0:1

Оффлайн ipchains

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ipchains.ru
Парсер поисковика
« Ответ #11 : 14 Сентября 2006, 22:20:01 »
Цитировать
ondr:
нарвешься на Transfer-Encoding: chunked

смени HTTP/1.1 --> HTTP/1.0 либо обрабатывай принятое согласно версии протокола

это был лишь пример, программировать правильные вещи поверьте я умею.

вместе с модулями я бы еще посоветовал http://rfc.net/rfc2616.html

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Парсер поисковика
« Ответ #12 : 14 Сентября 2006, 22:20:28 »
[OFF]весь флейм из данной переехал в профильный форум . где его и можно будет продолжить[/OFF]
0 OK, 0:1

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28