Parser определенных ссылок ?

Discussion in 'PHP' started by Adio, 30 Jun 2009.

  1. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    PHP:
    <?php
    $code
    =file_get_contents('http://www.in.com/?utm_source=redirect&utm_medium=in.com');
    preg_match_all('/<a href.*>(.*)<\/a>/'$code$matches);
    echo 
    "<pre>";
    print_r ($matches);
    echo 
    "<pre>";
    ?>
     
  2. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    preg_match_all('#href=[\'"](.*)mysite.com(.*)[\'"]#i', $code, $matches);

    Этот работает только он почемуто выдирает с картинаками

    http://site.in.com/blablabla/"><img src="http://site.in.com/blablabla" alt="Nameofimages">

    Как убрать картинки ? А так все классно то что надо !! ghostwizard

    Мне можеш дать ссылку где об этом почитать что бы усовершенсвовать можно было ?
    т.е я почитаю и буду сам потом эксперементировать ты мне помог с самым начало ибо я в php только на уровне кода там модифицировать что то заменить и так по мелочи а вот это для меня всегда был полный лес эти выражение чи шо там оно.. )
     
  3. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    А если так ?

    <a class="smallblu" href="http://site.in/blablalbla">qwerttt</a>

    Если все выдереть после класса ??? то можно так может так будет проще мне чем искать все ссылки на странице ?
     
    1 person likes this.
  4. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    там разный классы для ссылок,так будет тянуть линки с одним классом.
     
  5. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    PHP:
    <?php 
    $code
    =file_get_contents('/'); 
    preg_match_all('/<a href=\".*">[^<img src.*](.*)<\/a>/'$code$matches); 
    echo 
    "<pre>"
    print_r ($matches[0]); 
    echo 
    "<pre>"
    ?>
    ТС с вас бутылка.
     
  6. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    http://www.phpfaq.ru/regexp
    http://www.pcre.ru/
     
  7. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Слава богу там адин класс визде стоит .. те где нужно парсить там он и стоит )))

    <a class="smallblu" href="http://site.in/blablalbla">qwerttt</a>

    Класс стоит на всех мне нужных ссылках ))

    Бутыка нет. если все получиться с мегя любая графическая работа. 2D 3D WEB DESIGN
     
  8. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Нет там что то не то с классами много мусора выводит... там класс стоит только где мне нужно а оно выводит то что нужно и плюсь еще пол контента.

    Вот самый оптимальный вариант из ответов сдесь

    <?php
    $code=file_get_contents('http://site.com');
    preg_match_all('#href=[\'"](.*)site.com.in(.*)[\'"]#i', $code, $matches);
    print_r($matches[1]);
    ?>

    Выводит

    [6] => http://site.com.in/blablabla/?top=1"><img src="http://site.com.in" alt="BLABLABLA"></a>

    Так вот . Это бла бля бла есть в АЛЬТЕ ! т.е текс цены который мне нужен етьс в АЛЬТЕ картинки..

    Так вот (Если чесно у мя башка уже разрываеться..)))

    Мне надо это BLABLABLA вытащить чистым в столбик ...

    Уже не знаю как обьяснить но самый оптимальный вариаент это
     
  9. wildshaman

    wildshaman Elder - Старейшина

    Joined:
    16 Apr 2008
    Messages:
    478
    Likes Received:
    483
    Reputations:
    99
    Скажи сайт, с которого парсить надо.
     
  10. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    http://digiland.libero.it/ricerca_persone.php

    Там смотри есть 8 картинок с именами вот те имена мне и нужны без картинок в столбик.
     
  11. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Уже задолбался ото не знаю языка а потом как приспичит шо то сделать сидиш голова разрываеться ))) от непонимание этих регуляров.. я с ними 1 раз просто сталкиваюсь..
     
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Так что ли?
    PHP:
    $content file_get_contents('http://digiland.libero.it/ricerca_persone.php');

    preg_match_all('/114" alt="(.+?)"><\/a>/'$content$match);

    foreach (
    $match[1] as $name)
        {
         print 
    $name."<br>";
        }
     
    _________________________
    3 people like this.
  13. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    ДАААААААААААААААААААААА !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    preg_match_all('/114" alt="(.+?)"><\/a>/', $content, $match);

    А можеш чуть чуть разьяснить что ты сделал ?


    Ище и написал так чтоли ? )) типа раз два и сделал ))) ну это для тебя кто знает ))) тому просто )))
     
  14. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    /114" alt="(.+?)"><\/a>/ - ищет все вхождение текста 114" alt="текст"></a>, где в параметре alt 1 или более симолов
     
  15. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    О хитрюга необыкновенус 114 это высота т.е я так понял альт будет не какой папало а в каком есть значение height-114 =)))

    Будем разбераца.

    Я просто хочу парсер ников в коммунити сделать.

    В бущем будет 2 проблема...

    Ведь парсер когда парсит он только заданный URL ? а как задать ему что бы он пропарисил скажем 100 урл ? Если это реально
     
  16. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Что сложного? складываешь урлы в файл, или в коде в массив .... Потом достаёшь в массив (если в файле) и в цикле перебираешь. Типа
    PHP:
    <?php
    $urls 
    file('url_list.txt');

    foreach (
    $urls as $key => $url)
    {
      
    $content file_get_conten($url);
      
    //тут релугярка + обработка найденного
    }
    ?>