Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

15.12.2007, 09:09
|
|
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме: 3887520
Репутация:
2996
|
|
Парсинг google/yandex
Нужен скрипт на php выполняющий такие действий.
Зашел на сайт пропарсил index на содежание слова
Код:
875934875983775398475398759387458973
Если нету данного текста сделал гет запрос на http://ya.ru/ и записал полученное в файл ya.ru.txt
Далее пропарсил второй сайт (index) на текст
Код:
4098029840203498023498230489029348
и если текта нету делал бы запрос на http://google.com и записал полученное в файл google.com.txt
|
|
|

15.12.2007, 11:17
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
PHP код:
<?
$site1 = 'сайт #1';
$site2 = 'сайт #2';
$zapros1 = '875934875983775398475398759387458973';
$zapros2 = '4098029840203498023498230489029348';
if( substr_count(file_get_contents($site1), $zapros1) < 1 )
{
$handle = fopen('ya.ru.txt', 'w');
fwrite($handle, file_get_contents('http://ya.ru'));
fclose($handle);
}
if( substr_count(file_get_contents($site2), $zapros2) < 1 )
{
$handle = fopen('google.com.txt', 'w');
fwrite($handle, file_get_contents('http://google.com'));
fclose($handle);
}
?>
Так? Я лично не понял что собственно надо =)
|
|
|

15.12.2007, 15:35
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
Если реально 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");
|
|
|

15.12.2007, 16:06
|
|
Познавший АНТИЧАТ
Регистрация: 13.04.2006
Сообщений: 1,738
Провел на форуме: 5151669
Репутация:
1198
|
|
хм, он просил в теле страницы найти совпадения, а не найти в поиске =\
|
|
|

15.12.2007, 18:44
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Sn@k3, а что по втойму file_get_contents делает? =\
|
|
|

15.12.2007, 19:02
|
|
Участник форума
Регистрация: 06.06.2006
Сообщений: 213
Провел на форуме: 1628290
Репутация:
474
|
|
Isis, ты не понял, скрипт записывает не результат поиска, а сам html исходник поисковика
|
|
|

16.12.2007, 23:22
|
|
Участник форума
Регистрация: 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..
|
|
|

17.12.2007, 13:59
|
|
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
Провел на форуме: 4520553
Репутация:
1316
|
|
$handle = fopen($filename, "w");
Непонял зачем перезаписывать файл в каждой итерации цикла?
|
|
|

18.12.2007, 20:14
|
|
Гарант Форума
Регистрация: 22.01.2005
Сообщений: 267
Провел на форуме: 1982081
Репутация:
1067
|
|
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($host, 80, $errno, $errstr, 10);
stream_set_timeout($sock, 60);
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)
|
|
|
|