Доброе утро уважаемые форумчане, столкнулся с задачей парсинга контента с сайтов и объеденение спарсенной инфы в некую базу. Rак организовать проверку одинаковых сообщений из базы (к примеру файлы pars.txt pars2.txt pars3.txt - это три спасреный файла с объявлениями) так вот нужно что бы из них убирались дублирубщие объявления и формировались к примеру в файл дата.тхт, далее с файла дата.тхт они бы уже заносились в базу мускула З.Ы. Перегуглил пол инета ничего уже в течении 3х дней не нашёл, пожалуйста если не трудно помогите хоть както в решении этого сабжа, заранее очень благодарен Update 11.41 (26.07.2011)
Code: sort -u pars?.txt -o дата.тхт Если гуглить три дня, обязательно наткнёшься на это http://www.yakimchuk.ru/questions.htm и узнаешь, что нужно указывать формат данных
Можно краткий пример скрипта? И хотелось бы услышать по поводу мускула тоже с примерчиком желательно))
Имеется в виду то что как организовать скрипт который вытащит отсортированные данные с файла и запишет их в мускул базу
Кроме того, что отписали выше - средствами перла открываешь по очереди все файлы, нужное тебе поле с объявлением заносишь в ключ хеша, либо лучше - мд5 от него, тк сами объявления могут быть нехилыми по размеру, а мд5 будет гарантированно уникальным для каждого объявления в твоем случае. Соответственно, если ключ хеша с мд5 уже существует - это дубль, if (exists $hash{$md5} ) { next; }. Полностью скрипт под твое тз писать - лень Еще вариант - не фильтровать ничего на уровне перла, а сделать колонку в мускуле с UNIQUE: add unique(adds); , и потом инсертить в нее твои объявы, при этом для дублей мускул сам не даст вставить запись. Но первый способ с хешом имхо лучше, тк проверка на unique для большой базы может быть тяжелой и долгой.
В принцыпе да как вариант, связался сейчас с человеком он мне тоже подсказал, а что если сделать через регуляры, поразбивать весь текст и уже потом добавить в базу. Но тут тоже два нюанса незнаю как делать, либо чистить файлы сразу или же чистить их уже в самом мускуле от дублей... Формат базы примерно такой: 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. Тоесть если совпадает только адрес (улица и номер дома/квартиры) тогда это дубль, все остальные валидные З.Ы. С перлом почти не знаком могу лиш доработать какие нибудь скрипты под себя
что тут сложного если файлы не очень большие.. грузишь все файлы в массивы, склеиваешь их в один . удаляешь дбликаты в массиве.. и форичем потом перебераешь строки и добавляешь в мускул..