|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.08.2012, 15:01 | #1 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Парсер HTML-таблиц. Получение координат ячеек.
Всем привет!
Есть админка для интернет магазина, нужно слить туда инфу из другого и добавить все в БД. Информация представлена в виде таблиц (table,tr,td c классами и другими атрибутами) Нужен парсер (preg_match_all). Я все продумал вплоть до построения MySQL-запросов через два цикла foreach: первый результат - содержимое строчек, второй - содержимое ячеек. Вся проблема в том, что у меня не получается составить регулярные выражения - из-за атрибутов тегов, переносов строк и т.д. Помогите пожалуйста составить регулярки на получение содержимого тегов <tr></tr> и <td></td>, которые могут быть представлены по разному: <tr class="thTr" >Содержимое</tr> <td valign="middle" class="thTd" align="center" >Содержимое</td> и т. д. Буду очень благодарен! |
17.08.2012, 15:13 | #2 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
|
17.08.2012, 15:23 | #3 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Хорошая библиотека, не знал о ней. Но я хочу все сам сделать, мне только с регулярками разобраться, я поэтому и обратился сюда.
|
17.08.2012, 16:03 | #4 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Если нужно распарсить быстро и просто – юзай Simple HTML DOM Parser. Охота возиться с регулярками – изучай. Функции парсинга web-страниц |
|
17.08.2012, 16:27 | #5 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Да распарсить - это не проблема, у меня просто не получаются регулярки, я вчера всю ночь просидел, пытался составить, прочитал уже много литературы, но всегда где то ошибки есть.
Например хочу взять все строчки: preg_match_all("/<tr[^>]*>(.*)<\/tr>/",$table,$rows); Но получается только один результат, видимо он взял самый первый и самый последний. Я до сих пор не могу понять как в конструкции (.*) указать, что не нужно трогать </tr> |
17.08.2012, 16:58 | #6 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
... кстати двойной цикл - неверно .. по сути одна строка - одна запись в таблице БД (с нужными полями)
|
17.08.2012, 17:19 | #7 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
База данных уже давно готова, я не собираюсь ее менять - и так все прекрасно работает.
Люди, неужели никто не может помочь? |
17.08.2012, 19:35 | #8 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Регулярки - вещь, несколько напоминающая тензоры или аналогичные вещи, так что тут нужно терпение, усидчивость, кофе и желание.
Если же нужно написать быстро парсер, я пользуюсь explode. И любой парсер можно сделать быстро. |
17.08.2012, 19:41 | #9 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Код:
Код:
Код:
Во многих случаях действительно они помогают что-то сделать проще, есть готовые варианты. Зато старый добрый explode любую вещь вынет из кода, и код этот пишется быстро и автоматически. Если есть время и возможность, можно параллельно изучать и регулярки. Последний раз редактировалось motorway; 17.08.2012 в 19:49. |
17.08.2012, 20:18 | #10 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Я не просто так стал использовать регулярки. Дело в том, что парсер должен быть универсальным, потому что очень много различных таблиц.
И еще на этот парсер у меня есть планы в будущем. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получение координат точки. | ТриСемёрки | C++ Builder | 3 | 15.12.2011 15:08 |
получение координат пикселя с заданным цветом | JIM88 | Общие вопросы Delphi | 8 | 21.02.2011 11:59 |
WPF Получение 2D координат 3D вектора | Eugene123 | WPF, UWP, WinRT, XAML | 0 | 09.10.2010 20:15 |
Получение координат точки. | ТриСемёрки | Помощь студентам | 0 | 21.05.2010 21:35 |
Получение координат точек касательной к окружности | Stilet | Помощь студентам | 2 | 01.08.2008 15:12 |