- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Уважаемые коллеги,
подскажите, как можно достать адреса сайтов из серпа Яндекса.
Т. е. я ввожу запрос, и мне надо вытащить адреса сайтов со страницы результатов поиска.
попробуйте ашмановские макросы..
удобная штука для анализа серпов.
а где бы их бесплатно взять?
бесплатно тока сыр в мышкаловке.
А ручками посмотреть? Нет? ;)
Ну, а если это требуется в массовых количествах, читайте выше.
А средствами Php никак такого не добиться?
А средствами Php никак такого не добиться?
да запросто.
да запросто.
лучше перлом. Для пхп-шников многие дырки Яшка закрыл. С некоторых страниц даже через сокеты не достать контент, не то что с file_get_contents(). Можно правда при помощи curl, но по-моему не каждый хостер эту библиотеку поддерживает...
Для пхп-шников многие дырки Яшка закрыл. С некоторых страниц даже через сокеты не достать контент
Имхо, глупость. Не понимаю, как это возможно... Через сокеты можно ПОЛНОСТЬЮ имитировать браузер. Даже если Я смотрит заголовки, и фильтрует все клиенты, не похожие на известные ему браузеры (что маловероятно), то это легко обойти.
Имхо, глупость. Не понимаю, как это возможно...
Отлично. Значит у меня просто не получилось... :( Может кинете кусок кода в личку? А то реально - никак не могу один скрипт доделать... :(
А то реально - никак не могу один скрипт доделать... :(
Кода у меня нет, не приходилось сталкиваться с такой задачей. Главное, послать заголовки как браузер (если Я действительно как-то сечет обращения от роботов). Вот такие заголовки посылает мой лис:
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();
}
?>
- проверять не стал, но должно работать.