|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.12.2017, 14:51 | #1 |
Пользователь
Регистрация: 30.09.2013
Сообщений: 19
|
Парсинг - помогите!
Здравствуйте! Подскажите пожалуйста (помогите кодом) как сделать так, чтобы со страницы спарсить список товаров и цен.
Есть такой код: Код:
Шпатлевка универсальная гипсовая Основит Версилк PG34 G 20 кг - 289,00 Шпатлевка гипсовая Кнауф Фуген серая 25 кг - 410,00 На странице много таких записей, нужно все спарсить до конца. Заранее благодарю! Последний раз редактировалось Alex11223; 15.12.2017 в 15:11. |
15.12.2017, 15:12 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Maxim223, если я не ошибаюсь, Вам уже давали код парсинга в другой теме (искать лень, извините, но тема была недавно). В чём проблема применить этот код не к одной строчке, а ко всему HTML-коду?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
15.12.2017, 15:15 | #3 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Взять HTML/XML парсер и использовать XPath, CSS селекторы и т.п.
Желательно перед этим выкинуть Дельфи и взять нормальный язык, где нет проблем с поиском и подключением (см. пакетный менеджер) библиотек.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
15.12.2017, 15:17 | #4 |
Пользователь
Регистрация: 30.09.2013
Сообщений: 19
|
Давали и он отлично работает.. Но во-первых, не знаю как применить построчно (чтоб продолжался поиск), во-вторых, мне же нужно не одно значение, а несколько (товар, цена). Если не сложно - помогите.
|
15.12.2017, 15:20 | #5 |
Пользователь
Регистрация: 30.09.2013
Сообщений: 19
|
|
15.12.2017, 15:37 | #6 |
Пользователь
Регистрация: 30.09.2013
Сообщений: 19
|
Есть строка
<h4>220 <span class="rubznak">p</span><sup class="text-muted"><!----></sup></h4> Ищу 220 так: r.Expression := '<h4>(.*?) <span class="rubznak"'; Но после <h4> в коде очень много чего. Как же тогда найти 220? |
15.12.2017, 16:04 | #7 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Конкретно в Вашем примере в коде после 220 "много чего" отсутствует. Вам нужно всего лишь выдрать кусок между <h4> и <span> - вот Вам и два якоря, за которые можно зацепиться при поиске. То есть найти позицию субстроки <h4>, сдвинуть курсор на 4 символа (длина <h4>) и прочитать посимвольно всё, пока не встретится знак "<"
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
15.12.2017, 16:10 | #8 | |
Пользователь
Регистрация: 30.09.2013
Сообщений: 19
|
Цитата:
|
|
15.12.2017, 16:19 | #9 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
потому что <h4> - это заголовок.
Можно же делать поиск по комбинации в одной строке <h4> и <span> Или ещё как. Нужно просто определить тот набор символов, который идентифицирует данную строку как содержимое некоей информации, и плясать уже от него и от его положения в строке
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
15.12.2017, 16:51 | #10 |
Пользователь
Регистрация: 30.09.2013
Сообщений: 19
|
Можно ли как-то использовать "или" в шаблоне? Я ищу:
r.Expression := '.jpg" title="(.*?)"><img src="'; но вместо .jpg может быть .png |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
парсинг | jjioiu | Работа с сетью в Delphi | 7 | 19.10.2014 23:13 |
Парсинг | PaHaNjkee | Общие вопросы Delphi | 40 | 27.03.2014 08:27 |
Парсинг | nefakt | Общие вопросы Delphi | 4 | 04.05.2013 15:18 |
парсинг | Pein95 | Работа с сетью в Delphi | 4 | 01.12.2011 02:06 |
Парсинг | tigrend | PHP | 8 | 02.10.2011 00:09 |