Разделить кучу объявлений с одной страницы

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
363
Благодарностей
40
Баллы
28
Ребят, вроде самое простое, но не пойму как проще всего сделать, у меня получается куча списков, из списков перекидываю в переменные, тримов, вырезаний по регулярке и тд
а как сделать проще всего? а то проблема в том, что иногда имя или город к примеру не указаны и таблица уже сбивается

есть одна страница, большая, на ней список обьяв уже, мне нужно собрать с одной страницы все объявы и разделить их на имена, телефоны и сами обьявления и положить в Эксель так, что бы все данные соответствовали друг другу

вот кусок кода с одной странице (всего одна страница :D), это полноценные обьявления
Код:
                            <p class="ad-title">NAME1 | TOWN 1 | <a href="tel:+1">+1</a></p>
                            <p>MESSAGE  1 <span class="date">сегодня 17:34</span></p>
                          <p><a href="#magnific-popup0" class="open-magnific-popup first-position" onclick="$('#smstext').text('VUP 39');">подними объявление наверх!</a></p>                         
                     
              <p class="ad-title">NAME2 | TOWN 2 | <a href="tel:+2">+2</a></p>
                            <p>MESSAGE  2 <span class="date">сегодня 17:34</span></p>
                          <p><a href="#magnific-popup0" class="open-magnific-popup first-position" onclick="$('#smstext').text('VUP 394');">подними объявление наверх!</a></p>  

              <p class="ad-title">NAME3 | TOWN 3| <a href="tel:+3">+3</a></p>
                            <p>MESSAGE  3 <span class="date">сегодня 17:34</span></p>
                          <p><a href="#magnific-popup0" class="open-magnific-popup first-position" onclick="$('#smstext').text('VUP 39');">подними объявление наверх!</a></p>

нужно в эксель в столбики положить данные
NAMe1 TOWN 1 TEL1 MESSAGE 1
NAMe2 TOWN 2 TEL2 MESSAGE 2
NAMe3 TOWN 3 TEL3 MESSAGE 3

Как это сделать проще всего без создания отдельно списков имён, номеров, сообщений, городов и тд?
можно ли как то сделать 4 регулярки в одной, что бы одновременно вырезало из обьявы и телефон, и имя, и город, и текст сообщения, при это каждый параметр отдельно записывался в ряд в ексель)
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 931
Благодарностей
9 329
Баллы
113
Ребят, вроде самое простое, но не пойму как проще всего сделать, у меня получается куча списков, из списков перекидываю в переменные, тримов, вырезаний по регулярке и тд
а как сделать проще всего? а то проблема в том, что иногда имя или город к примеру не указаны и таблица уже сбивается

есть одна страница, большая, на ней список обьяв уже, мне нужно собрать с одной страницы все объявы и разделить их на имена, телефоны и сами обьявления и положить в Эксель так, что бы все данные соответствовали друг другу

вот кусок кода с одной странице (всего одна страница :D), это полноценные обьявления
Код:
                            <p class="ad-title">NAME1 | TOWN 1 | <a href="tel:+1">+1</a></p>
                            <p>MESSAGE  1 <span class="date">сегодня 17:34</span></p>
                          <p><a href="#magnific-popup0" class="open-magnific-popup first-position" onclick="$('#smstext').text('VUP 39');">подними объявление наверх!</a></p>                    
                
              <p class="ad-title">NAME2 | TOWN 2 | <a href="tel:+2">+2</a></p>
                            <p>MESSAGE  2 <span class="date">сегодня 17:34</span></p>
                          <p><a href="#magnific-popup0" class="open-magnific-popup first-position" onclick="$('#smstext').text('VUP 394');">подними объявление наверх!</a></p>

              <p class="ad-title">NAME3 | TOWN 3| <a href="tel:+3">+3</a></p>
                            <p>MESSAGE  3 <span class="date">сегодня 17:34</span></p>
                          <p><a href="#magnific-popup0" class="open-magnific-popup first-position" onclick="$('#smstext').text('VUP 39');">подними объявление наверх!</a></p>

нужно в эксель в столбики положить данные
NAMe1 TOWN 1 TEL1 MESSAGE 1
NAMe2 TOWN 2 TEL2 MESSAGE 2
NAMe3 TOWN 3 TEL3 MESSAGE 3

Как это сделать проще всего без создания отдельно списков имён, номеров, сообщений, городов и тд?
Как вариант:

- брать все объявления по регулярке в список, в каждой строке списка по объявлению
- брать из списка строку (блок объявления), парсить по регуляркам в переменные, напрмиер name, town, tel, mess
- записывать эти переменные в таблицу строкой с разделителями {-Variable.name-}{-String.Tab-}{-Variable.town-}{-String.Tab-}{-Variable.tel-}{-String.Tab-}{-Variable.mess-}
- и так в цикле пока не закончатся строки в списке
 
Последнее редактирование:
  • Спасибо
Реакции: JanCarlo

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
363
Благодарностей
40
Баллы
28
Как вариант:

- брать все объявления по регулярке в список, в каждой строке списка по объявлению
- брать из списка строку (блок объявления), парсить по регуляркам в переменные, напрмиер name, town, tel, mess
- записывать эти переменные в таблицу строкой с разделителями {-Variable.name-}{-String.Tab-}{-Variable.town-}{-String.Tab-}{-Variable.tel-}{-String.Tab-}{-Variable.mess-}
- и так в цикле пока не закончатся строки в списке
спасибо, сработало, правда чуток обработки текста добавил, но главное с файлами и списками всё просто получилось
 

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
363
Благодарностей
40
Баллы
28
Как вариант:

- брать все объявления по регулярке в список, в каждой строке списка по объявлению
- брать из списка строку (блок объявления), парсить по регуляркам в переменные, напрмиер name, town, tel, mess
- записывать эти переменные в таблицу строкой с разделителями {-Variable.name-}{-String.Tab-}{-Variable.town-}{-String.Tab-}{-Variable.tel-}{-String.Tab-}{-Variable.mess-}
- и так в цикле пока не закончатся строки в списке
а подскажи пожалуйста, этот сайт откуда я вырезаю обьявы, он имеет всего одну страницу, и каждый день обновляется, но могут быть обьявы заново опубликованные

подскажи, как сделать проверку, скажем по номеру телефона, проверить есть ли такой же номер в Экселе? к примеру вчера такая обьява была уже записана мною, а сегодня она опять попалась, тогда вообще не писать её

хочу собирать и дополнять базу, для спама потом по номерам, а так будет несколько раз на один и тот же номер отсылать



Либо после парсинга, что бы во время его не тратить на лишнем кубике время, взять в конце всью таблицу и проверить по номерам, если есть совпадающие номера то и все данные удалить
 
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 648
Баллы
113
можно попробовать с помощью групповых регулярок в обход списков
 
  • Спасибо
Реакции: JanCarlo

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
363
Благодарностей
40
Баллы
28
можно попробовать с помощью групповых регулярок в обход списков
а можно ссылку почитать про групповые? а то я просто в конструкторе там их делаю
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 931
Благодарностей
9 329
Баллы
113
а подскажи пожалуйста, этот сайт откуда я вырезаю обьявы, он имеет всего одну страницу, и каждый день обновляется, но могут быть обьявы заново опубликованные

подскажи, как сделать проверку, скажем по номеру телефона, проверить есть ли такой же номер в Экселе? к примеру вчера такая обьява была уже записана мною, а сегодня она опять попалась, тогда вообще не писать её

хочу собирать и дополнять базу, для спама потом по номерам, а так будет несколько раз на один и тот же номер отсылать



Либо после парсинга, что бы во время его не тратить на лишнем кубике время, взять в конце всью таблицу и проверить по номерам, если есть совпадающие номера то и все данные удалить
Можно дубли удалять из таблицы:

upload_2018-5-24_22-32-30.png
 
  • Спасибо
Реакции: JanCarlo

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)