Perl парсер

Discussion in 'PHP' started by warlock000, 26 Jul 2011.

  1. warlock000

    warlock000 New Member

    Joined:
    6 Sep 2009
    Messages:
    36
    Likes Received:
    0
    Reputations:
    0
    Доброе утро уважаемые форумчане, столкнулся с задачей парсинга контента с сайтов и объеденение спарсенной инфы в некую базу. Rак организовать проверку одинаковых сообщений из базы (к примеру файлы pars.txt pars2.txt pars3.txt - это три спасреный файла с объявлениями) так вот нужно что бы из них убирались дублирубщие объявления и формировались к примеру в файл дата.тхт, далее с файла дата.тхт они бы уже заносились в базу мускула

    З.Ы. Перегуглил пол инета ничего уже в течении 3х дней не нашёл, пожалуйста если не трудно помогите хоть както в решении этого сабжа, заранее очень благодарен

    Update 11.41 (26.07.2011)
     
    #1 warlock000, 26 Jul 2011
    Last edited: 26 Jul 2011
  2. warlock000

    warlock000 New Member

    Joined:
    6 Sep 2009
    Messages:
    36
    Likes Received:
    0
    Reputations:
    0
    Если не трудно выложите скрипты :)
     
    #2 warlock000, 26 Jul 2011
    Last edited: 26 Jul 2011
  3. emmy

    emmy Member

    Joined:
    12 Oct 2009
    Messages:
    76
    Likes Received:
    17
    Reputations:
    8
    Code:
    sort -u pars?.txt -o дата.тхт
    Если гуглить три дня, обязательно наткнёшься на это http://www.yakimchuk.ru/questions.htm и узнаешь, что нужно указывать формат данных
     
  4. warlock000

    warlock000 New Member

    Joined:
    6 Sep 2009
    Messages:
    36
    Likes Received:
    0
    Reputations:
    0
    Можно краткий пример скрипта? :) И хотелось бы услышать по поводу мускула тоже с примерчиком желательно))
     
  5. emmy

    emmy Member

    Joined:
    12 Oct 2009
    Messages:
    76
    Likes Received:
    17
    Reputations:
    8
    Выше полный скрипт на баше, убирающий дубли.
     
  6. warlock000

    warlock000 New Member

    Joined:
    6 Sep 2009
    Messages:
    36
    Likes Received:
    0
    Reputations:
    0
    Имеется в виду то что как организовать скрипт который вытащит отсортированные данные с файла и запишет их в мускул базу
     
  7. red_joker

    red_joker New Member

    Joined:
    4 Nov 2010
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    Кроме того, что отписали выше - средствами перла открываешь по очереди все файлы, нужное тебе поле с объявлением заносишь в ключ хеша, либо лучше - мд5 от него, тк сами объявления могут быть нехилыми по размеру, а мд5 будет гарантированно уникальным для каждого объявления в твоем случае. Соответственно, если ключ хеша с мд5 уже существует - это дубль, if (exists $hash{$md5} ) { next; }. Полностью скрипт под твое тз писать - лень :)
    Еще вариант - не фильтровать ничего на уровне перла, а сделать колонку в мускуле с UNIQUE: add unique(adds); , и потом инсертить в нее твои объявы, при этом для дублей мускул сам не даст вставить запись. Но первый способ с хешом имхо лучше, тк проверка на unique для большой базы может быть тяжелой и долгой.
     
  8. warlock000

    warlock000 New Member

    Joined:
    6 Sep 2009
    Messages:
    36
    Likes Received:
    0
    Reputations:
    0
    В принцыпе да как вариант, связался сейчас с человеком он мне тоже подсказал, а что если сделать через регуляры, поразбивать весь текст и уже потом добавить в базу. Но тут тоже два нюанса незнаю как делать, либо чистить файлы сразу или же чистить их уже в самом мускуле от дублей...

    Формат базы примерно такой:

    PHP:
    улОрбитовская281-комнкв., 32,6 кв.м., отделка под чистовую7 минпешком до моряцена 2 млн100 тысТел.8-988-143-28-73.
    1
    -комнкв., угловаяс лоджиейбольшая кухня,1/5 домасостояние жилоецена 2 млн.500 тысрублейСобственникТел.8-918-910-59-22.   
    р
    -н почты1-комнкв., 2/2общпл30 кв.млоджия2 500 000 рубТоргсобственникТел67-21-948-988-504-80-07.    
    пер
    Донской1-комнкв., 2/530/17/7в отличном состояниицена 2 млн.250 тысрублей или меняю на 2-3-комнкв., с доплатойТел8-918-601-17-67.    
    ул
    Пасечная 1-комнкв., пл.48,1 кв.мпод чистовую отделкувид на городсвидетельствоцена 2 млн300 тыс.рублейТел.8-918-000-79-89.    
    ул
    Поселковая 351-комн.кв.,45 кв.м., в новом домецена 1 млн800 тысрублейТел.8-988-152-44-75.    
    ул
    Тимирязева29 кв.м4/5угловаяюжная сторонавида на мореотделка под ключмебель2 000 000 рубторгТел8-918-384-09-57.    
    Тоесть если совпадает только адрес (улица и номер дома/квартиры) тогда это дубль, все остальные валидные

    З.Ы. С перлом почти не знаком могу лиш доработать какие нибудь скрипты под себя :(
     
    #8 warlock000, 26 Jul 2011
    Last edited: 26 Jul 2011
  9. dpe_x

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

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    что тут сложного если файлы не очень большие..
    грузишь все файлы в массивы, склеиваешь их в один .
    удаляешь дбликаты в массиве..
    и форичем потом перебераешь строки и добавляешь в мускул..