[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правилно парсить http://wordstat.yandex.ru
azadlezgi
Ребята помогите пожалуйста как мне разобраться с этого знаниям:

Как правильно парсить http://wordstat.yandex.ru


я использовал обычная функция ПХП
скачал и добавил в root папку нужные файлы /js/_advq.js /css/_advq.css .....

<?[SPAN=darling]php[/SPAN]
$homepage = file_get_contents('http://wordstat.yandex.ru/?cmd=words&page=1&t=хостинг');
echo $homepage;
?>


проблема в том что надо разобраться Капча яндекса он не пашут! :wacko:


что вы мне посоветуйте?



Спустя 10 минут, 39 секунд (28.04.2012 - 10:26) Игорь_Vasinsky написал(а):
используй курл, подставляй USER_AGENT, REFERER и всё будет тип топ.

Спустя 37 минут, 36 секунд (28.04.2012 - 11:04) azadlezgi написал(а):
Там все есть и все вчера работал как надо а сегодня он перестал работать blink.gif

ТЕСТ: http://ahmed.azadhost.ru/azad/ он тут

Спустя 2 минуты, 50 секунд (28.04.2012 - 11:07) Игорь_Vasinsky написал(а):
да тебя спалили блин. пользуйся курлом. маскируйся, делай разный таймаут между получением данных

Спустя 6 минут, 10 секунд (28.04.2012 - 11:13) azadlezgi написал(а):
аааааааааааа понятно вот в чём дела )) спосибо огромные wink.gif

Спустя 1 час, 58 минут, 3 секунды (28.04.2012 - 13:11) I++ написал(а):
Все проще, кук подхватывай которым они проверяют на робота:

<noscript><div style="position: absolute;"><img src="//mc.yandex.ru/watch/%НОМЕР%" alt="" /></div></noscript>

Иначе каптча будет вечно лезть

Спустя 2 минуты, 27 секунд (28.04.2012 - 13:13) killer8080 написал(а):
Еще ip может спалился, юзай прокси.

Спустя 17 минут, 14 секунд (28.04.2012 - 13:30) azadlezgi написал(а):
Цитата (I @ ++28.04.2012 - 10:11)
Все проще, кук подхватывай которым они проверяют на робота:

<noscript><div style="position: absolute;"><img src="//mc.yandex.ru/watch/%НОМЕР%" alt="" /></div></noscript>

Иначе каптча будет вечно лезть

я но скрипт поставил он вообще перестал работать :P



посмотрите пожалуйста кода где тут мой недостаток :huh:

    function queryFreq(){

$query = $_POST['query'] ? $_POST['query'] : '';
$captcha_html = '';

if ( !$query ){
$_POST['query'] = 'test';
}

$url = 'http://wordstat.yandex.ru/?cmd=words&page=1&text='. urlencode( iconv('windows-1251','utf-8', $_POST['query']) ) .'&geo=&text_geo=';

if ( $_POST['captcha_val'] ){
$url .= '&captcha_id='.$_POST['captcha_id'].'&captcha_val='.$_POST['captcha_val'];
//$url=iconv('cp1251','utf-8',$url);

}
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt';


$content = file_get_contents($url);
$content = iconv('utf-8','windows-1251', $content);
//$result=$content;

if ( $_POST['captcha_val'] ){
if ( preg_match('#то искали со#', $content )){
if ( preg_match('#0 показа#', $content) ){
$result = 'Возможно, Вы будете удивлены, но "'. $query .'" никто не ищет в интернете. Попробуйте ввести что-нибудь другое.';
}
else if ( preg_match( '#<table border="0" cellpadding="5" cellspacing="0"(.)*</table>#sU', $content, $matches ) ){
$result = $matches[0];
$result = preg_replace( '#<a href="(.*)">(.*)</a>#', "$2", $result );
}
else{
$result = '<span style="color:red">Ошибка при обработке результата.</span>';
}
}

else{
$result = '<span style="color:red">Неправильно введен код с картинки!.</span>';
}
}



if(preg_match('#name="captcha_id" value="(.*)">#', $content, $matches )){
$captcha_key = $matches[1];
$captcha_html = '<br /><br />Введите цифры с картинки:<br /><br /> <input type="text" name="captcha_val" ><br />
<noscript><div style="position: absolute;">
<img src="http://captcha.yandex.net/image?key='
.$captcha_key.'"> </div></noscript>
<input type="hidden" name="captcha_id" value="'
. $captcha_key .'">';
}


$HTML = ' <form method="post">
<h2>Введите фразу</h2>
<input style="width:250px;" type="text" name="query" value="'
. $query .'"/>
'
. $captcha_html .'
<br /><br /><input class="nicesubmit" type="submit" class="smb" name="search" value="Отправить запрос"/><br /><br />
'
. $result .'
</form>'
;


return $HTML;
}


echo queryFreq();


 ! 

М
подправил теги
killer8080

Спустя 5 минут, 9 секунд (28.04.2012 - 13:36) killer8080 написал(а):
azadlezgi
тебе же уже сказали, что нужно передавать заголовки юзер-агент и т.п.
И к чему было это?
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt';


PS используй правильно теги для подсветки синтаксиса

Спустя 3 дня, 17 часов, 38 минут, 6 секунд (2.05.2012 - 07:14) azadlezgi написал(а):
ни (три точки)-а не понял! что надо делать кому надо передавать?

помогите пожалуйста мне выгонют с работы user posted image

Спустя 9 минут, 15 секунд (2.05.2012 - 07:23) Игорь_Vasinsky написал(а):
а где курл??? а прокси??

можно вообще массив юзер агентов и прокси - и менять при каждом коннекте

Спустя 16 минут, 48 секунд (2.05.2012 - 07:40) netruxa написал(а):
Там обязательно куки нужно хранить. Без курла никак

Спустя 2 часа, 38 минут, 58 секунд (2.05.2012 - 10:19) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 2.05.2012 - 07:23)
можно вообще массив юзер агентов и прокси - и менять при каждом коннекте

только главное не забывать куки чистить, при следующих запросах с другим ip и UA, чтоб не палить куки от предыдущего сеанса.
Цитата (netruxa @ 2.05.2012 - 07:40)
Там обязательно куки нужно хранить. Без курла никак

Есть еще как минимум два способа, как сделать это без курла, но с курлом удобней, ни к чему изобретать велосипед. smile.gif

Спустя 6 часов, 40 минут, 19 секунд (2.05.2012 - 16:59) Игорь_Vasinsky написал(а):
уволили наверно уже...

Спустя 21 день, 20 часов, 11 минут, 44 секунды (24.05.2012 - 13:11) azadlezgi написал(а):
Здрасте

как правильно парсить эту строку?

нап:
<td>Что искали со словом <span class='bold-style'>«хостинг»</span> — 335074 показа в месяц.</td>


я парсилл так


<?php

$query=$_GET['t'];

$text_geoaz=$_GET['text_geo'];

// $query = iconv('windows-1251', 'utf-8', strtolower($query));
// $text_geoaz = iconv('windows-1251', 'utf-8', strtolower($text_geoaz));

$url = "http://wordstat.yandex.ru/?cmd=words&geo=&page=1&t=".urlencode($query)."&text_geo=".urlencode($text_geoaz)."";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIE, 'fuid01=4b55eb3819e45ffc.GHz1qZGVLdiellfrdaV8oOurD-eyAQLruoiXkgwQlajZVIiK72GT1sl3vBlpr8MCD-dfUUrA7hZR_ahgXI XDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;');
$html = curl_exec($ch);
//print $html;
echo "<hr>";
curl_close($ch);

preg_match_all('/<td>(.*)</td>/', $html, $return);

if(isset($return[1][2]))
print $return[1][2];

?>


укажите пожалуста примеры тега
preg_match_all


зарание спасибо

Спустя 56 минут, 2 секунды (24.05.2012 - 14:07) SlavaFr написал(а):
Kруто!
Коммунистическая партия Азербайджана пытается выдaвать информацию Яндехса как свою.

Спустя 25 дней, 1 час, 17 минут, 53 секунды (19.06.2012 - 15:25) azadlezgi написал(а):
Да нет там просто на тестовой домене это сайт стоял biggrin.gif


_____________
Купить хостинг для размещения сайтов

if ($naciya=="Lezgin") {
echo "Лезгин";
} else {
echo "все ровно Лезгин :)";
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.