ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Парсинг google/yandex
  #1  
Старый 15.12.2007, 09:09
Аватар для guest3297
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


Exclamation Парсинг google/yandex

Нужен скрипт на php выполняющий такие действий.

Зашел на сайт пропарсил index на содежание слова
Код:
875934875983775398475398759387458973
Если нету данного текста сделал гет запрос на http://ya.ru/ и записал полученное в файл ya.ru.txt

Далее пропарсил второй сайт (index) на текст
Код:
4098029840203498023498230489029348
и если текта нету делал бы запрос на http://google.com и записал полученное в файл google.com.txt
 
Ответить с цитированием

  #2  
Старый 15.12.2007, 11:17
Аватар для NOmeR1
NOmeR1
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме:
6023777

Репутация: 2642


Отправить сообщение для NOmeR1 с помощью ICQ
По умолчанию

PHP код:
<?
$site1 
'сайт #1';
$site2 'сайт #2';
$zapros1 '875934875983775398475398759387458973';
$zapros2 '4098029840203498023498230489029348';
if( 
substr_count(file_get_contents($site1), $zapros1) < )
{
     
$handle fopen('ya.ru.txt''w');
     
fwrite($handlefile_get_contents('http://ya.ru'));
     
fclose($handle);
}
if( 
substr_count(file_get_contents($site2), $zapros2) < )
{
     
$handle fopen('google.com.txt''w');
     
fwrite($handlefile_get_contents('http://google.com'));
     
fclose($handle);
}
?>
Так? Я лично не понял что собственно надо =)
 
Ответить с цитированием

  #3  
Старый 15.12.2007, 15:35
Аватар для AkyHa_MaTaTa
AkyHa_MaTaTa
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме:
3152874

Репутация: 1020


Отправить сообщение для AkyHa_MaTaTa с помощью ICQ
По умолчанию

Если реально ya.ru и google.com то скорее так:
file_get_contents("http://www.ya.ru/yandsearch?text=$zapros1);
file_get_contents("http://www.google.com/search?hl=ru&q=$zapros2");
 
Ответить с цитированием

  #4  
Старый 15.12.2007, 16:06
Аватар для Sn@k3
Sn@k3
Познавший АНТИЧАТ
Регистрация: 13.04.2006
Сообщений: 1,738
Провел на форуме:
5151669

Репутация: 1198


Отправить сообщение для Sn@k3 с помощью ICQ
По умолчанию

хм, он просил в теле страницы найти совпадения, а не найти в поиске =\
 
Ответить с цитированием

  #5  
Старый 15.12.2007, 18:44
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Sn@k3, а что по втойму file_get_contents делает? =\
 
Ответить с цитированием

  #6  
Старый 15.12.2007, 19:02
Аватар для ENFIX
ENFIX
Участник форума
Регистрация: 06.06.2006
Сообщений: 213
Провел на форуме:
1628290

Репутация: 474
Отправить сообщение для ENFIX с помощью ICQ
По умолчанию

Isis, ты не понял, скрипт записывает не результат поиска, а сам html исходник поисковика
 
Ответить с цитированием

  #7  
Старый 16.12.2007, 23:22
Аватар для DWORD
DWORD
Участник форума
Регистрация: 24.07.2007
Сообщений: 138
Провел на форуме:
165671

Репутация: 215
По умолчанию

Цитата:
Сообщение от .::Gh0st::.  
GET http://$host/search?q=$query HTTP/1.0
1) Читаем RFC:
"The absoluteURI form is only allowed when the request is being made to a proxy ...". Ваше счастье, если google сделал защиту от "дурака" в ущерб стандарту.
2) Что-то не слышно про ограничения на query, его нужно urlencode'ить в уме? Может быть тогда проще посылать запрос телнетом?

Цитата:
Сообщение от .::Gh0st::.  
for ($n = 0; $n < $num; )
{
...

$n = $n + 10;
$page = "";
}
Цитата:
Сообщение от .::Gh0st::.  
for ($i = 1; $i < 20 ; $i++)
{
....
$i = $i + 1;
}
Как там говорится-то: Ыыыыы.

Последний раз редактировалось DWORD; 16.12.2007 в 23:24..
 
Ответить с цитированием

  #8  
Старый 17.12.2007, 13:59
Аватар для k1b0rg
k1b0rg
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
Провел на форуме:
4520553

Репутация: 1316


По умолчанию

Цитата:
$handle = fopen($filename, "w");
Непонял зачем перезаписывать файл в каждой итерации цикла?
 
Ответить с цитированием

  #9  
Старый 18.12.2007, 20:14
Аватар для .::Gh0st::.
.::Gh0st::.
Гарант Форума
Регистрация: 22.01.2005
Сообщений: 267
Провел на форуме:
1982081

Репутация: 1067
Отправить сообщение для .::Gh0st::. с помощью ICQ
По умолчанию

2dword
1) исправлено
2) исправлено
3) исправлено

2kib
исправлено
делал для того, чтобы при подвисании скрипта сохранились данные за последнию итерацию, не использовал "a", потому что надо было чтобы при новом запуске скрипта файл очищался. сейчас немного по другому сделал, файл либо создается, либо очищается при старте и информация записывается после каждого прохода

2all
я тут немного не понял суть претензий - я вообще-то накатал скриптег за некоторое время и скинул в топ, в надежде помочь. критерием оценки работы служило "лишь бы работало". в общем я все замечания учел, но все же, я же не за деньги это делаю, так что надо бы понимать что это просто сэмпл, а не какой-то готовый продукт. шевелите мозгами иногда.

код:
PHP код:
<?php
$host 
"www.google.com";
$query "snitch";
$num 20;
$filename "links.txt";

$handle fopen($filename"w");
fclose($handle);

function 
grab_links($page)
{
        
$links "";
        
$result preg_split('/<span class=a>| - [0-9]*k - <\/span>/i'$page);
        for (
$i 1$i 20$i += 2)
        {
                
$clean str_replace("<b>"""$result[$i]);
                
$clean str_replace("</b>"""$clean);
                
$clean str_replace(" """$clean);
                
$links .= "$clean\r\n";
        }
        return 
$links;
}

for (
$n 0$n <= $num$n += 10)
{
        
$request "GET /search?q=".urlencode($query)."&start=$n HTTP/1.0\r\n";
        
$request .= "Host: $host\r\n";
        
$request .= "Connection: Close\r\n";
        
$request .= "\r\n";

        
$sock fsockopen($host80$errno$errstr10);
        
stream_set_timeout($sock60);
        
fputs($sock$request);

        while(!
feof($sock)){$page .= fgets($sock);}
        
fclose($sock);

        
$links grab_links($page);
        
//echo $links;
        
$page "";
        
        
$handle fopen($filename"a");
        
fwrite($handle$links);
        
fclose($handle);
}
?>
з.ы
минусов много, скрипт собирает лишние ссылки с рекламы и прочего, так как регекспы писались тоже на скорую руку. правьте сами по желанию.

Последний раз редактировалось .::Gh0st::.; 18.12.2007 в 20:22..
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ