Автор Тема: Какой забугорный поисковик проще подходит для грабанья линков?  (Прочитано 7359 раз)

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

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
что надо писать
echo $a->getResponseBody();
а не
print_r($req);
как надо писать я знаю, я таким образом пытался показать тебе, какую информацию ты можеш получить из объекта Request


насчет языка - изучай передаваемые гуглу параметры, там среди них язык должен быть
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн obytatel

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 129
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.microsoft.com/
Новое чудо открыл у себя после отработки по циклу 47 запросов, дальше ничего неграбиться. Таже беда на на локальном хосте и на гугле. Разобраться не могу что это за зверь может настройки моего сервера?
БЕЛАРУСЬ - страна восходящего картофеля

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
Новое чудо открыл у себя после отработки по циклу 47 запросов,
в смысле если в цикле делать $req->sendRequest() после 47 цикла не работает ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн obytatel

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 129
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.microsoft.com/
Массив с запросом у меня на 1900 элементов. Через foreach пускаю
$region=file("Sxs.sxs");
foreach ($region as $cat)
{
$cat=trim($cat);
$out="hl=en&lr=&ie=UTF-8&oe=UTF-8&q=$cat&btnG=Google+Search";
$url1=$url."?$out";
$a = & new HTTP_Request($url1,$params);
$a->sendRequest();
$code= $a->getResponseBody();
}
Результат определённого числа (47-53) ответов на запрос нормальный, т.е $code="ХТМЛ-код примерно на 35 kb". А дальше (47/53 и выше) начинается сказка,- $code="", т.е. пустой. Думал может соединение надо каждый раз убивать (unset ($a);) - не помогло. Увеличил лимит отводимой под РНР оперативной памяти в php.ini (с 8 до 28Мб)- не помогло. На большее пока мозгов нехватило.
БЕЛАРУСЬ - страна восходящего картофеля

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
а что print_r($a) выводит ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн obytatel

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 129
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.microsoft.com/
http_request Object ( [_url] => net_url Object ( http:// =>
[url]http://127.0.0.3/1.html?hl=en&lr=&ie=UTF-8&oe=UTF-8&q=spiderman+game&btnG=Google+Search

[protocol] => http [user] => [pass] => [host] => 127.0.0.3 [port]
=> 80 [path] => /1.html [querystring] => Array ( [hl] => en [lr]
=> [ie] => UTF-8 [oe] => UTF-8 [q] => spiderman%2Bgame [btnG] =>
Google%2BSearch ) [anchor] => [useBrackets] => 1 ) [_sock] =>
net_socket Object ( [fp] => Resource id #1 [blocking] => 1 [persistent]
=> [addr] => 127.0.0.3 [port] => 80 [timeout] => 20 [lineLength]
=> 2048 [_debug] => [_default_error_mode] => [_default_error_options]
=> [_default_error_handler] => [_error_class] => PEAR_Error
[_expected_errors] => Array ( ) ) [_method] => GET [_http] => 1.1
[_user] => [_pass] => [_proxy_host] => [_proxy_port] => [_timeout]
=> 20 [_requestHeaders] => Array ( [User-Agent] => PEAR HTTP_Request
class ( http://pear.php.net/ ) [Content-Type] =>
application/x-www-form-urlencoded [Connection] => close [Host] =>
127.0.0.3 )

Запросы без ответа доходят только до сюда (print_r($a);)
Дальше выводят только первые 47 запросов:

 [_response] => http_response Object ( [_code] => 200
[_protocol] => HTTP/1.1 [_headers] => Array ( [Date] => Fri, 31 Jan
2003 22:56:50 GMT [date] => Fri, 31 Jan 2003 22:56:50 GMT [Server] =>
Apache/1.3.22 (Win32) rus/PL30.9 [server] => Apache/1.3.22 (Win32) rus/PL30.9
[Last-Modified] => Fri, 31 Jan 2003 22:49:24 GMT [last-modified] => Fri,
31 Jan 2003 22:49:24 GMT [ETag] => "0-68-3e3afd74" [etag] =>
"0-68-3e3afd74" [Accept-Ranges] => bytes [accept-ranges] => bytes
[Content-Length] => 104 [content-length] => 104 [Connection] => close
[connection] => close [Content-Type] => text/html [content-type] =>
text/html ) [_body] => Free Game ) )

Странно вот ещё что: [_body] => Free Game
Хотя $code= $a->getResponseBody(); echo("$code"); возвращает:
"Free GameFree Game"
БЕЛАРУСЬ - страна восходящего картофеля

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
может какая-нибудь автоматическая защита у гугла стоит (хотя я знаю один сайт с поиском через гугл и у них вроде таких проблем не было)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн obytatel

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 129
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.microsoft.com/
Да дело не в гугле, та же феня и по локальному хосту происходит
БЕЛАРУСЬ - страна восходящего картофеля

Оффлайн obytatel

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 129
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.microsoft.com/
Макс
Тему предлагаю считать закрытой. Не знаю нафига нужны мне были эти классы и модули, если все и без них прекрастно работает. Предлагаю юзать такой скриптец:
set_time_limit(60000);
$url="http://www.google.com/search";
$region=file("Sxs.sxs");
foreach ($region as $cat)
   { //foreach region
   $cat=trim($cat);
   if (ereg("=",$cat))
   {
   }
   else
   {
   $region1=file("cat.sxs");
   foreach ($region1 as $cat1)
      { //foreach region1
      $cat1=trim($cat1);
      
$dog=str_replace(" ", "+", "$cat");
$dog1=str_replace(" ", "+", "$cat1");
$ret="$dog+$dog1";
$out="hl=en&lr=&ie=UTF-8&oe=UTF-8&q=$ret&btnG=Google+Search";
$url1=$url."?$out";
$so = fsockopen("www.google.com", 80, &$errno, &$errstr, 30);
fputs($so,"GET $url1 HTTP/1.0\\nHOST: http://www.google.com/\\n\\n");
while(fgets($so,2048)!="\\r\\n" && !feof($so));
unset($buf);
while(!feof($so)) $buf.=fread($so,2048);
fclose($so);
$dog=str_replace(" ", "", "$cat");
$dog1=str_replace(" ", "", "$cat1");
mkdir ("data/$dog", 0700);
$fp1=fopen("data/$dog/$dog.$dog1","w+");
fputs($fp1, $buf);
fclose ($fp1);
      } //else ereg
      } //foreach region1
   } //foreach region
?>
Только надо подправить mkdir - в том смысле что необходима проверка на существование директории перед использованием.
БЕЛАРУСЬ - страна восходящего картофеля

 

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