Urlencode и Google

Статус
В этой теме нельзя размещать новые ответы.

dig555

Постоялец
Регистрация
22 Июн 2007
Сообщения
365
Реакции
160
Вообщем набиваю сплоги списками RSS лент. Вручную копировать url ленты как-то неудобно. Решил немножко автоматизировать. Для Яндекса например сделал так:
PHP:
<?
$file="file.txt";
$all=file($file);
for ($i=0; $i<count($all); $i++){
$encode = urlencode($all[$i]);
echo "http://blogs.yandex.ru/search.xml?text=";
echo $encode;
echo "<br>";
}
?>
Код, конечно, кривой :ah: - но вроде работает как нужно.
В файл file.txt набиваю нужные мне слова, а из браузера забираю список лент с поиском по этому слову.

Помогите пожалуйста замутить то же для Googl'a. Нифига в их url'ax не понимаю. Там такие конструкции.
Для просмотра ссылки Войди или Зарегистрируйся

ХЗ что за btnG. А когда обратно декодишь - фигня какая-то получается. Может дело в кодировке? Спасайте :thenks:
 
фигня какая-то получается

что именно за "фигня" - ты же не хочешь, чтобы мы побежали все это ручками проверять , как и что там получается ... так что всю инфу на стол - там смотреть будем ;)
 
Ну вот допустим url
HTML:
http://news.google.com/news?hl=ru&ned=ru_ru&q=%D0%B6%D0%BE%D0%BF%D0%B0&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA
Разбиваю его на то что в q и то что в btnG и декожу:
PHP:
<?
$q="%D0%B6%D0%BE%D0%BF%D0%B0";
echo urldecode($q);
echo "<br>";
$btng="%D0%9F%D0%BE%D0%B8%D1%81%D0%BA";
echo urldecode($btng);
?>

На выходе хрень жопа для q и РџРѕРёСЃРє для btng. Вот я и грешу на кодировку...
 
На выходе хрень жопа для q и РџРѕРёСЃРє для btng. Вот я и грешу на кодировку...
Спасибо

вот сразу бы указал, и не было бы проблем. тебе бы сразу сказали что это в кодировке дело. и набора постов не было бы ;)

перекодируй разencod'еный результат через iconv
 
И добавляй туда прокси сразу, т.к. гугл банит после нескольких типичных запросов (у меня вчера был запрос вида allinurl:*.host.com, хотел проверить поддомены, так забанило после первого запроса).
 
вот сразу бы указал, и не было бы проблем. тебе бы сразу сказали что это в кодировке дело. и набора постов не было бы ;)

перекодируй разencod'еный результат через iconv
А не подскажешь из какой в какую кодировку перегонять эти кракозябры нужно для читаемого вида?
И добавляй туда прокси сразу, т.к. гугл банит после нескольких типичных запросов (у меня вчера был запрос вида allinurl:*.host.com, хотел проверить поддомены, так забанило после первого запроса).
Дык у меня ж обращений к Гуглу не будет. Просто настругаю на локалхосте список лент. А уж с этим списком RSS лент и банами Гугла будет разбираться сплоговый движок.
 
А не подскажешь из какой в какую кодировку перегонять эти кракозябры нужно для читаемого вида?

скорее всего так
PHP:
 $str=iconv('cp1251','UTF-8',$str);

если не поможет, попробуй переставь местами кодировки))
 
Зашибись. Всё работает. Вот окончательный вариант.
PHP:
<?
$file="file.txt";
$all=file($file);
for ($i=0; $i<count($all); $i++){
$encode = urlencode($all[$i]);
echo "http://blogs.yandex.ru/search.xml?text=";
echo $encode;
echo "<br>";
$code=iconv('cp1251','UTF-8',$all[$i]);
$code=urlencode($code);
echo "http://news.google.com/news?hl=ru&ned=ru_ru&q=";
echo $code;
echo "&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA";
echo "<br>";
}
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху