1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Urlencode и Google

Тема в разделе "Web Coding", создана пользователем dig555, 16 мар 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    Вообщем набиваю сплоги списками 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 не понимаю. Там такие конструкции.
    http://news.google.com/news?hl=ru&ned=ru_ru&q=жопа&btnG=Поиск+новостей

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

    Dogmat Постоялец

    Регистр.:
    16 фев 2007
    Сообщения:
    122
    Симпатии:
    38
    что именно за "фигня" - ты же не хочешь, чтобы мы побежали все это ручками проверять , как и что там получается ... так что всю инфу на стол - там смотреть будем ;)
     
  3. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    Ну вот допустим 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. Вот я и грешу на кодировку...
     
  4. Dogmat

    Dogmat Постоялец

    Регистр.:
    16 фев 2007
    Сообщения:
    122
    Симпатии:
    38
    вот сразу бы указал, и не было бы проблем. тебе бы сразу сказали что это в кодировке дело. и набора постов не было бы ;)

    перекодируй разencod'еный результат через iconv
     
  5. chewie

    chewie Создатель

    Регистр.:
    17 ноя 2007
    Сообщения:
    41
    Симпатии:
    1
    И добавляй туда прокси сразу, т.к. гугл банит после нескольких типичных запросов (у меня вчера был запрос вида allinurl:*.host.com, хотел проверить поддомены, так забанило после первого запроса).
     
  6. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    А не подскажешь из какой в какую кодировку перегонять эти кракозябры нужно для читаемого вида?
    Дык у меня ж обращений к Гуглу не будет. Просто настругаю на локалхосте список лент. А уж с этим списком RSS лент и банами Гугла будет разбираться сплоговый движок.
     
  7. Dogmat

    Dogmat Постоялец

    Регистр.:
    16 фев 2007
    Сообщения:
    122
    Симпатии:
    38
    скорее всего так
    PHP:
     $str=iconv('cp1251','UTF-8',$str); 
    если не поможет, попробуй переставь местами кодировки))
     
    dig555 нравится это.
  8. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    Зашибись. Всё работает. Вот окончательный вариант.
    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>";
    }
    ?>
     
Статус темы:
Закрыта.