Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / как распарсить яндекс? / 10 сообщений из 10, страница 1 из 1
02.07.2013, 19:26
    #38317696
meg17m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
сейчас пишу:
Код: php
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.
29.
30.
31.
32.
33.
34.
35.
function curl($url='')
		{
			//http://www.hidemyass.com/proxy-list/ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
			/* function_exists проверит есть ли на Вашем хостинге функция cURL. Если она отключена скрипт выведет сообщение "cURL not found on your server!". В этом случае есть смысл написать в поддержку хостинг провайдера с вопросом почему не работает CURL. */
			if(function_exists("curl_init")){
				$ch = curl_init();
				$user_agent = "Mozilla/5.0";
				curl_setopt ($ch, CURLOPT_URL, $url);
				curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
				/* Симулирует "юзер агент" - строку которая обычно говорит о том каким браузером и операционной системой пользуется посетитель сайта. */
				curl_setopt ($ch, CURLOPT_HEADER, 0);
				/* Если поставить единицу, а не ноль, cURL вернет не только контент , но и код ответа стороннего сервера (например: код 200 - означает, что соединение прошло успешно. 302 - что ресурс перемещён и т.д.). Также покажет ПО удаленного сервера. Бывает полезно при отладке (например: если Вы не можете понять, почему CURL возвращает пустую "белую" страницу) */
				curl_setopt($ch, CURLOPT_PROXY, '193.105.154.8:8080');
				curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'EUR888906:oti67tGHKJ'); 
				/* Эта строка отвечает за соединение через анонимный прокси сервер. Если Вы хотите чтобы на стороннем сайте, с которого Вы берёте контент, не записывался в логи IP адрес вашего сайта-сервера, допишите вместо proxy.com:port адрес и порт анонимного прокси. Его можно взят из бесплатного списка прокси серверов. После этого уберите комментарий - черточки перед строчкой. */
				curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
				curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
				/* На некоторых сервера, хостингах этот пункт может вызывать ошибку Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in. Это значит, что Ваш хостинг провайдер , в целях безопасности , включил некоторые ограничения для выполняемых скриптов. Поставьте два слеша (закоментируйте эту строчку) или удалите эту строку и ошибка пропадёт. */
				curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
				/* Время, в секундах, которое может пройти пока Ваш сервер ждёт ответа от другого сервера. */
				$curl_print = curl_exec($ch);
				//$curl_print  = curl_getinfo( $ch );
				curl_close($ch);
			}
			else $curl_print = "cURL not found on your server!";
			return $curl_print;
		}

                $su = 'http://'.$_GET['site_url'];
		$susu = 'http://yandex.ru/yandsearch?date=&text=&spcctx=notfar&zone=all&wordforms=all&lang=all&within=0&from_day=&from_month=&from_year=&to_day=01&to_month=01&to_year=2020&mime=all&site='.urlencode($su).'&rstr=&ds=&numdoc=10';
		$suka = 'http://yandex.ru/yandsearch';
		
		echo $susu;
		$response = curl($susu);
		echo $response;


Ничего не выводится.
Если написать:
Код: php
1.
$susu = 'http://football.ua';


то все парсится на ура. Что делать с яндексом?
...
Рейтинг: 0 / 0
02.07.2013, 19:37
    #38317708
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
посмотреть не забанили ли тебя.
Код: php
1.
2.
3.
4.
if( ! $result = curl_exec($ch))
    {
        trigger_error(curl_error($ch));
    } 
...
Рейтинг: 0 / 0
02.07.2013, 19:43
    #38317720
meg17m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
ScareCrow,
проверил - не забанили. Тем более у меня же прокси, у меня их дофига, я каждый раз новый подставляю, - все равно не фурычит чего-то...
...
Рейтинг: 0 / 0
02.07.2013, 20:01
    #38317730
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
MegaLasta
Код: php
1.
2.
3.
		echo $susu;
		$response = curl($susu);
		echo $response;

Ничего не выводится.
Если написать:
Код: php
1.
$susu = 'http://football.ua';

то все парсится на ура. Что делать с яндексом?В представленном коде не вижу ничего насчет "парсится". Просто забирается страница и выдается на вывод.
Сделайте отладочный вывод, например, длины полученной страницы. Будет ли она отлична от нуля?
Еще попробуйте сохранять $response, например, в файл. Т.к. выдача полного текста страницы внутри другой страницы дает невалидную верстку и результат может быть непредсказуем.
...
Рейтинг: 0 / 0
02.07.2013, 20:05
    #38317733
meg17m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
miksoft, Вы правы, парсер у меня идет дальше по коду, в выше представленном коде парсера нет. Переменная $response пустая точно, так как я смотрю в исходный код страницы - там пусто (это отдельный скрипт, там собственной верстки нету - просто голая страница)
...
Рейтинг: 0 / 0
02.07.2013, 21:57
    #38317842
meg17m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
ну так что, никто не сталкивался с подобной проблемой?... раньше я парсил http://xmlsearch.yandex.ru, сейчас не знаю, что и делать... мне нужно количество страниц в индексе получить.
...
Рейтинг: 0 / 0
03.07.2013, 00:15
    #38317953
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
MegaLastaраньше я парсил http://xmlsearch.yandex.ru, сейчас не знаю, что и делать...Может, в этом проблема? http://legal.yandex.ru/xml/ Ограничение на количество XML-запросов устанавливается для каждого Пользователя по усмотрению Яндекса в зависимости от сайтов, зарегистрированных Пользователем в сервисе Яндекс.Вебмастер.
...
Рейтинг: 0 / 0
03.07.2013, 14:39
    #38318814
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
MegaLastaScareCrow,
проверил - не забанили. Тем более у меня же прокси, у меня их дофига, я каждый раз новый подставляю, - все равно не фурычит чего-то...
Может вас определяют по X-Forwarded-For?
...
Рейтинг: 0 / 0
08.07.2013, 00:37
    #38323514
Шогал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
Может быть User-Agent какого-нибудь браузера подставить?
...
Рейтинг: 0 / 0
08.07.2013, 09:45
    #38323691
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как распарсить яндекс?
MegaLastaну так что, никто не сталкивался с подобной проблемой?... раньше я парсил http://xmlsearch.yandex.ru, сейчас не знаю, что и делать... мне нужно количество страниц в индексе получить.

Заголовки надо правильно сформировать. А поможет в этом получение заголовков с яндекса (CURLOPT_HEADER выставить в 1). В них будет описана проблема. Там что-то по поводу подлинности авторизации вроде выскакивает (не помню уже, давно парсил)... При полной имитации поведения хрома всё становится как надо.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / как распарсить яндекс? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]