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

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).

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

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Если у вас последний билд - используйте группы в регулярных выражениях.
 

markzmanz

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

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
Парсить в список по отдельности все данные у меня получается, но с парсингом в таблицу, чтобы данные были сопоставлены, никак не могу разобраться.
Ну так если ты данные спарсить смог, то просто размещай их в одной строке в разных ячейках и всё. Чего там сложного-то?

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

В каком месте сложность возникает? Не совсем понятно.
 

markzmanz

Client
Регистрация
22.05.2015
Сообщения
63
Благодарностей
4
Баллы
8
Спасибо, теперь понял, как он работает. Я подумал, что он сразу на группы автоматом делит, когда задаешь "Перед иск. текстом" и "После". А тут просто регулярку писать нужно на все сразу и тогда на группы разделится.
 

markzmanz

Client
Регистрация
22.05.2015
Сообщения
63
Благодарностей
4
Баллы
8
Ну так если ты данные спарсить смог, то просто размещай их в одной строке в разных ячейках и всё. Чего там сложного-то?

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

В каком месте сложность возникает? Не совсем понятно.
Да, спасибо! Правда запарился видимо, что об этом даже не подумал.
 

markzmanz

Client
Регистрация
22.05.2015
Сообщения
63
Благодарностей
4
Баллы
8
Если у вас последний билд - используйте группы в регулярных выражениях.
@zortexx можно еще вопрос, по таблицам. Вот через рег. выражения - В таблицу. Исключить столбы 0,3.

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

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

zennomoves

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

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

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

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

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

Например:

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

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

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

Потом к счётчику цикла +1 и повторяешь то же самое, и так до тех пор пока не сможешь считать ссылку из очередной строки, потому что её не будет существовать.
 
  • Спасибо
Реакции: markzmanz

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
@zortexx можно еще вопрос, по таблицам. Вот через рег. выражения - В таблицу. Исключить столбы 0,3.

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

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

Код:
(?<=<a\ href=")(.*?)">(.*?)</a>.*?(есть.*?)</span>(?=</div>)
upload_2016-2-2_11-1-50.png
 

markzmanz

Client
Регистрация
22.05.2015
Сообщения
63
Благодарностей
4
Баллы
8
@zortexx, @zennomoves спасибо вам большое за помощь! Очень помогли!
 

bezvozni

Client
Регистрация
31.03.2013
Сообщения
306
Благодарностей
29
Баллы
28
То есть для того что бы произошло деление на группы нужно обладать хотя бы базовыми навыками построения регулярных выражений?
 

Avatar1980

Пользователь
Регистрация
31.12.2019
Сообщения
37
Благодарностей
0
Баллы
8
При парсинге сайта, при получении значения темы (в виде текста) / или получении основной статьи (не знаю насколько они равнозначны по результату и что лучше) данные записываются в переменную. как их из переменной поместить в список?

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

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