Парсинг данных в отдельные ячейки в таблицу

  • Автор темы Автор темы markzmanz
  • Дата начала Дата начала

markzmanz

Client
Регистрация
22.05.2015
Сообщения
63
Реакции
4
Баллы
8
Здравствуйте еще раз!

Не могу разобраться с парсингом данных в таблицу.

Имеется такой код на странице:

HTML:
Развернуть Свернуть Копировать
<a href="http://auto.drom.ru/?id=17016000&amp;uid=1454304654#question_142490595">BMW 3-Series, 2000</a> - <span class="green">есть ответ от 29.01.2016 20:54</span></div>

<a href="http://auto.drom.ru/?id=18748668&amp;uid=1454304654#question_142491939">BMW 3-Series, 2003</a> - <span class="">нет ответа</span></div>

<a href="http://auto.drom.ru/?id=17662308&amp;uid=1454304654#question_142491858">BMW 3-Series, 2000</a> - <span class="red">вопрос удален продавцом </span></div>

<a href="http://auto.drom.ru/?id=20622420&amp;uid=1454304654#question_142309660">Audi 80, 1990</a> - <span class="green">есть ответ от 29.01.2016 10:03</span></div>

Задача: парсинг данных, где "есть ответ" т.е. с этой страницы в таблицу необходимо складывать в отдельные ячейки: Ссылку (ячейка A), Модель (ячейка B), Есть ответ от (ячейка C).

Парсить в список по отдельности все данные у меня получается, но с парсингом в таблицу, чтобы данные были сопоставлены, никак не могу разобраться.
 
Если у вас последний билд - используйте группы в регулярных выражениях.
Как этим инструментом пользоваться? Что-то не въезжаю.. Нашел, что можно выделять только необходимые результаты парсинга для копирования в буфер обмена. Но от результатов парсинга вкладки "Совпадения" содержимое ни чем не отличается.
 
Парсить в список по отдельности все данные у меня получается, но с парсингом в таблицу, чтобы данные были сопоставлены, никак не могу разобраться.

Ну так если ты данные спарсить смог, то просто размещай их в одной строке в разных ячейках и всё. Чего там сложного-то?

Можно собрать строку с разделителями под Excel и её просто добавить в таблицу, она там сама должны расфасоваться, или можно поштучно добавлять в строку каждую ячейку при парсинге.

В каком месте сложность возникает? Не совсем понятно.
 
Спасибо, теперь понял, как он работает. Я подумал, что он сразу на группы автоматом делит, когда задаешь "Перед иск. текстом" и "После". А тут просто регулярку писать нужно на все сразу и тогда на группы разделится.
 
Ну так если ты данные спарсить смог, то просто размещай их в одной строке в разных ячейках и всё. Чего там сложного-то?

Можно собрать строку с разделителями под Excel и её просто добавить в таблицу, она там сама должны расфасоваться, или можно поштучно добавлять в строку каждую ячейку при парсинге.

В каком месте сложность возникает? Не совсем понятно.
Да, спасибо! Правда запарился видимо, что об этом даже не подумал.
 
Если у вас последний билд - используйте группы в регулярных выражениях.
@zortexx можно еще вопрос, по таблицам. Вот через рег. выражения - В таблицу. Исключить столбы 0,3.

Допустим я положил эти данные (url, модель, есть ответ - в столбцы A,B,C), но дальше нужно пройти по каждой из этих ссылок и в столбец D положить информацию с новой страницы, а именно спарсить цену в переменную (наверное?) и потом уже сохранить в одноименной ячейке в столбце D соответствующему URL.

С работой с таблицами у меня к сожалению очень тяжело.
 
@zortexx можно еще вопрос, по таблицам. Вот через рег. выражения - В таблицу. Исключить столбы 0,3.

Допустим я положил эти данные (url, модель, есть ответ - в столбцы A,B,C), но дальше нужно пройти по каждой из этих ссылок и в столбец D положить информацию с новой страницы, а именно спарсить цену в переменную (наверное?) и потом уже сохранить в одноименной ячейке в столбце D соответствующему URL.

С работой с таблицами у меня к сожалению очень тяжело.

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

То же самое, что я тебе до этого писал (хотя не знай, так ли ты это понял).

Организуй цикл, бери в таблице строки со значением счётчика цикла и из этой строки бери нужные ячейки и записывай в нужные ячейки.

Например:

Цикл от 0 до пока строки в таблице не закончатся.

При 0 будет идти работа с первой строкой в таблице. Чтобы получить ссылку берёшь значение столбца A из строки 0 (т.е. это значение счётчика цикла - переменная, которая за это отвечает)

Чтобы записать вновь полученные данные, запись будет идти в столбец D из строки 0 (т.е. это значение счётчика цикла)

Потом к счётчику цикла +1 и повторяешь то же самое, и так до тех пор пока не сможешь считать ссылку из очередной строки, потому что её не будет существовать.
 
  • Оценить
Реакции: markzmanz
@zortexx можно еще вопрос, по таблицам. Вот через рег. выражения - В таблицу. Исключить столбы 0,3.

Допустим я положил эти данные (url, модель, есть ответ - в столбцы A,B,C), но дальше нужно пройти по каждой из этих ссылок и в столбец D положить информацию с новой страницы, а именно спарсить цену в переменную (наверное?) и потом уже сохранить в одноименной ячейке в столбце D соответствующему URL.

С работой с таблицами у меня к сожалению очень тяжело.
К сожалению в этом билде что-то напутали с исключением стоблцов и работает исключение только одного столбца. Но это не беда, - я немного поправил регулярку и теперь берутся только нужные значения.

Код:
Развернуть Свернуть Копировать
(?<=<a\ href=")(.*?)">(.*?)</a>.*?(есть.*?)</span>(?=</div>)

upload_2016-2-2_11-1-50.png
 
То есть для того что бы произошло деление на группы нужно обладать хотя бы базовыми навыками построения регулярных выражений?
 
При парсинге сайта, при получении значения темы (в виде текста) / или получении основной статьи (не знаю насколько они равнозначны по результату и что лучше) данные записываются в переменную. как их из переменной поместить в список?

Там где парсить данные - вроде все понятно, они сразу помещаются в список. (Так не все получилось, вроде, пришлось делать через получение значения текста, возможно через получение основной статьи.) зачем здесь переменная и как поместить в список?
 

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