[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: curl. Получить содержимое страницы
Ser18
Подскажите пожалуйста

Есть переводчик Google
Я при помощи curl иду на страницу с таким адресом и данными

http://translate.google.ru/?tab=wT#en|ru|for

en - с какого языка переводим
ru - на какой
for - что переводим

Поле в котором пишется перевод создается после загрузки страницы javascpt -ом

Можно ли получить при помощи curl текст который уже потом догружается javascpt -ом?



Спустя 53 секунды (2.11.2011 - 14:12) Winston написал(а):
Покажи то, что уже написал.

Спустя 1 минута, 37 секунд (2.11.2011 - 14:14) Adil написал(а):

Спустя 58 секунд (2.11.2011 - 14:15) Ser18 написал(а):
$slovo = trim($_POST['slovo']);
if($slovo){
if( $curl = curl_init() ){
// Задаем ссылку
curl_setopt($curl,CURLOPT_URL,'http://translate.google.ru/?tab=wT#en|ru|'.$slovo.'');
// Скачанные данные не выводить поток
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
// Скачиваем
$text = curl_exec($curl);
preg_match_all('#<span class="hps">(.*?)</span>#Uis', $text, $out, PREG_PATTERN_ORDER);
// Закрываем соединение
curl_close($curl);
$res = $out[0][0];
}
}

echo $slovo.' - '.$res;

Спустя 2 минуты, 38 секунд (2.11.2011 - 14:17) Ser18 написал(а):
Цитата (Adil @ 2.11.2011 - 14:14)
Google Translate API v2

Еще бы английский знать

Спустя 3 часа, 17 минут, 4 секунды (2.11.2011 - 17:34) walerus написал(а):

$word = 'Hello'; // Слово для перевода
$hl = 'ru'; // НА какой язык переводим
$sl = 'en'; // C какого языка переводим

$url_query = 'http://translate.google.ru/translate_a/t?client=t&text='.$word.'&hl='.$hl.'&sl='.$sl;


вот это курлу скорми, и получишь тучу слов в ответ, во всех склонениях вариантах, ну в общем то что отдает переводчик.

Спустя 49 минут, 25 секунд (2.11.2011 - 18:24) Ser18 написал(а):
Спасибо

Спустя 13 минут, 23 секунды (2.11.2011 - 18:37) Ser18 написал(а):
Правда у меня еще вопрос

В какой кодировке он данные отдает?

Спустя 4 минуты, 31 секунда (2.11.2011 - 18:42) walerus написал(а):
text/html; charset=utf-8

Спустя 3 минуты, 52 секунды (2.11.2011 - 18:46) Ser18 написал(а):
Если я пишу такой заголовок

header('Content-Type: text/html; charset=utf-8');

то он мне краказябры выдает

Спустя 3 минуты, 30 секунд (2.11.2011 - 18:49) walerus написал(а):
А сам файл скрипта в какой кодировке ? должен быть UTF-8 без БОМ

Спустя 6 минут, 8 секунд (2.11.2011 - 18:55) Ser18 написал(а):
header('Content-Type: text/html; charset=utf-8');
$slovo = trim($_POST['slovo']);
if($slovo){
if( $curl = curl_init() ){
$hl = 'ru'; // НА какой язык переводим
$sl = 'en'; // C какого языка переводим
// Задаем ссылку

$url_query = 'http://translate.google.ru/translate_a/t?client=t&text='.$slovo.'&hl='.$hl.'&sl='.$sl;
curl_setopt($curl,CURLOPT_URL, $url_query);
// Скачанные данные не выводить поток
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
// Скачиваем
$text = curl_exec($curl);

// Закрываем соединение
curl_close($curl);

}
}

echo $text;

без БОМ

Спустя 4 минуты, 25 секунд (2.11.2011 - 19:00) Ser18 написал(а):
А если не выставлять кодировку, то все нормально

Но я потом этот результат ajax -ом забираю, а там уже как не крути краказябры получаются

Спустя 1 минута, 2 секунды (2.11.2011 - 19:01) Winston написал(а):
Они в windows-1251 возвращают данные.

Спустя 13 минут, 38 секунд (2.11.2011 - 19:14) walerus написал(а):
Ser18 и? - не работает ? вот сюда
$_POST['slovo']
что приходит ? из какого файла ?...



<?php
header('Content-Type: text/html; charset=utf-8');
$slovo = 'Hello People';
if($slovo){
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

$hl = 'ru'; // НА какой язык переводим
$sl = 'en'; // C какого языка переводим

// Задаем ссылку


$url_query = 'http://translate.google.ru/translate_a/t?client=t&text='.urlencode($slovo).'&hl='.$hl.'&sl='.$sl;
curl_setopt($curl, CURLOPT_REFERER, 'http://google.com');
curl_setopt($curl,CURLOPT_URL, $url_query);

// Скачиваем
$text = curl_exec($curl);

// Закрываем соединение
curl_close($curl);

}
echo $text;


Результат:

[[["Привет Люди","Hello People","Privet Lyudi",""]],,"en",,[["Привет",[5],1,0,586,0,1,0],["Люди",[6],1,0,391,1,2,0]],[["Hello",5,[["Привет",586,1,0],
["Здравствуйте",359,1,0],["Здравствуй",0,1,0],["привета",0,1,0],["Привете",0,1,0]],[[0,5]],"Hello People"],["People",6,[["Люди",391,1,0],["Людой",0,1,0],
["Люде",0,1,0],["Люда",0,1,0],["людей",0,1,0]],[[6,12]],""]],,,[["en"]],34]



Спустя 17 минут, 39 секунд (2.11.2011 - 19:32) Ser18 написал(а):
Посылается ajax -ом
$_POST['slovo']


Так все нормально
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);


Спасибо вам еще раз
Быстрый ответ:

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