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:
    ул. Орбитовская, 28, 1-комн. кв., 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-94, 8-988-504-80-07.    
    пер
    . Донской, 1-комн. кв., 2/5, 30/17/7, в отличном состоянии, цена 2 млн.250 тыс. рублей или меняю на 2-3-комн. кв., с доплатой. Тел. 8-918-601-17-67.    
    ул
    . Пасечная , 1-комн. кв., пл.48,1 кв.м, под чистовую отделку, вид на город, свидетельство, цена 2 млн. 300 тыс.рублей. Тел.8-918-000-79-89.    
    ул
    . Поселковая , 35, 1-комн.кв.,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
    что тут сложного если файлы не очень большие..
    грузишь все файлы в массивы, склеиваешь их в один .
    удаляешь дбликаты в массиве..
    и форичем потом перебераешь строки и добавляешь в мускул..