Достать адреса сайтов из серпа

12 3
Hubba_Bubba
На сайте с 26.11.2005
Offline
75
1846

Уважаемые коллеги,

подскажите, как можно достать адреса сайтов из серпа Яндекса.

Т. е. я ввожу запрос, и мне надо вытащить адреса сайтов со страницы результатов поиска.

Сайт экономистов БелГУТа (http://economistov.net)
ZomBeer
На сайте с 15.07.2005
Offline
31
#1

попробуйте ашмановские макросы..

удобная штука для анализа серпов.

A.Perez
На сайте с 04.10.2005
Offline
55
#2

а где бы их бесплатно взять?

Бесплатный трафик (/ru/forum/176138)
N
На сайте с 26.01.2005
Offline
60
#3

бесплатно тока сыр в мышкаловке.

Torio
На сайте с 25.06.2005
Offline
124
#4

А ручками посмотреть? Нет? ;)

Ну, а если это требуется в массовых количествах, читайте выше.

С уважением, Виктор. Тел: (905) 610-95-80
Hubba_Bubba
На сайте с 26.11.2005
Offline
75
#5

А средствами Php никак такого не добиться?

D
На сайте с 21.11.2003
Offline
65
#6
Hubba_Bubba:
А средствами Php никак такого не добиться?

да запросто.

Сайт про Индию (http://bharat.ru).
Torio
На сайте с 25.06.2005
Offline
124
#7
dharbari:
да запросто.

лучше перлом. Для пхп-шников многие дырки Яшка закрыл. С некоторых страниц даже через сокеты не достать контент, не то что с file_get_contents(). Можно правда при помощи curl, но по-моему не каждый хостер эту библиотеку поддерживает...

bondarev.pp.ru
На сайте с 29.09.2005
Offline
202
#8
Torio:
Для пхп-шников многие дырки Яшка закрыл. С некоторых страниц даже через сокеты не достать контент

Имхо, глупость. Не понимаю, как это возможно... Через сокеты можно ПОЛНОСТЬЮ имитировать браузер. Даже если Я смотрит заголовки, и фильтрует все клиенты, не похожие на известные ему браузеры (что маловероятно), то это легко обойти.

bondarevpipes.com (http://ru.bondarevpipes.com/)
Torio
На сайте с 25.06.2005
Offline
124
#9
bondarev.pp.ru:

Имхо, глупость. Не понимаю, как это возможно...

Отлично. Значит у меня просто не получилось... :( Может кинете кусок кода в личку? А то реально - никак не могу один скрипт доделать... :(

bondarev.pp.ru
На сайте с 29.09.2005
Offline
202
#10
Torio:
А то реально - никак не могу один скрипт доделать... :(

Кода у меня нет, не приходилось сталкиваться с такой задачей. Главное, послать заголовки как браузер (если Я действительно как-то сечет обращения от роботов). Вот такие заголовки посылает мой лис:

GET / HTTP/1.1

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7

Accept-Encoding: gzip,deflate

Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3

Connection: keep-alive

Content-Type: application/x-www-form-urlencoded

Host: yandex.ru

Keep-Alive: 300

Referer: http://yandex.ru/

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8) Gecko/20051107 Firefox/1.5

Если пошлушь такие же, то у Я не будет повода заподозрить, что твой скрипт - это не браузер.

Итого, нужно примерно так:

<?

if ($fp = fsockopen('yandex.ru', 80, &$errno, &$errstr, 30)) {

fwrite($fp, "GET /yandsearch?stype=www&nl=0&text=QUERY HTTP/1.1\r\n");

fwrite($fp, "Host: yandex.ru\r\n");

fwrite($fp, "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n");

fwrite($fp, "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n");

fwrite($fp, "Accept-Encoding: gzip,deflate\r\n");

fwrite($fp, "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n");

fwrite($fp, "Connection: keep-alive\r\n");

fwrite($fp, "Content-Type: application/x-www-form-urlencoded\r\n");

fwrite($fp, "Keep-Alive: 300\r\n");

fwrite($fp, "Referer: http://yandex.ru/\r\n");

fwrite($fp, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8) Gecko/20051107 Firefox/1.5");\r\n\r\n");

// и далее читаем ответ:

$content = '';

do {

$line = fgets($fp, 1024);

$content .= $line;

} while(!feof($fp));

} else {

echo 'Can not coonect to Yandex';

exit();

}

?>

- проверять не стал, но должно работать.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий