|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.02.2013, 10:47 | #1 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Обработка тегов не Regex/ом
Здравствуйте Уважаемые программисты, собственно вопрос по парсингу HTML страниц. Существуют ли какие-то библиотеки по теме, кроме регулярных выражений и кроме тех методов что можно использовать у контрола WebBrowser?
|
21.02.2013, 12:21 | #2 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Да, всегда все можно сделать вручную
Понадобится поиск подстроки в строке, выделение подстроки из строки, уйма терпения и усидчивости А если серьезно, то есть множество библиотек. Например, http://htmlagilitypack.codeplex.com/ (здесь краткая инструкция на Хабре).
Благодарить в репутацию. Проклинать — туда же
|
21.02.2013, 12:34 | #3 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Вот, последнее это именно то что я искал, вылетело из головы название библиотеки. А по гуглу с запросом: "c# поиск тегов" ничего кроме регулярных выражений не выдает. Большое спасибо, еще нашел вариант это mshtml но она мне не очень нравится...
|
24.02.2013, 14:53 | #4 |
Пользователь
Регистрация: 29.07.2012
Сообщений: 98
|
эти библиотеки наверное сами используют Regex
|
24.02.2013, 19:51 | #5 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Может быть, но тем не менее они не менее полезны чем Regex
|
25.02.2013, 03:53 | #6 |
Пользователь
Регистрация: 29.07.2012
Сообщений: 98
|
Чем полезны? вот пример получения слова после "action=" в исходнике. HtmlAgilityPack -
Код:
Код:
|
25.02.2013, 04:11 | #7 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
да и в принципе задать фильтры именно структурой файла лучше, чем сырым текстом. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
25.02.2013, 04:38 | #8 |
Пользователь
Регистрация: 29.07.2012
Сообщений: 98
|
первый пример был взят из инета. Второй написан мной. Почему я не привязываюсь к классу, как в первом случае? потому что на странице только одно совпадение "action=" всегда. конечно можно привязаться к классу, и дописать "Пару буков" в начало выражения но это ничего не изменит.
|
25.02.2013, 04:54 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в первом случае совпадение будет именно то которое надо, во втором форма может быть и не одна, тогда совпадение выдаст первый action(например страницу с двумя и более формами), а если он на странице первый?
сложные запросы куда проще реализовать на XPath, чем регулярками. простые же практически идентичны. далее, если action не последний аттрибут, то не проканает, в регулярке это надо учитывать, в XPath нет. продолжать? каждому инструменту свое место, и не стоит в обработку HTML пускать всегда все на чистых регулярках, не столь оно уютно как порою кажется. для малых и простых оно подойдет отлично, но чем сложнее, тем труднее уже выражения. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
25.02.2013, 07:02 | #10 | ||||
Пользователь
Регистрация: 29.07.2012
Сообщений: 98
|
Цитата:
Цитата:
Цитата:
для меня рег. выражения будут всегда правильным решением для парсинга страниц. да конечно, если нет встроенных средств - то эта библиотека была бы кстати. а так считаю ее не нужной. в пример - есть такая библиотека xNet для отправки запросов на сайт. и зачем она вообще нужна? если в C# уже есть встроенные средства - класс HttpWebRequest. Цитата:
Последний раз редактировалось winhttp; 25.02.2013 в 07:09. |
||||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Regex | record222 | PHP | 2 | 20.01.2013 14:43 |
C# и regex | Vigo_Alex | Помощь студентам | 0 | 12.10.2010 02:26 |
Java, regex | Namolem | Помощь студентам | 0 | 02.05.2010 23:07 |
Regex | Cpluser | Общие вопросы .NET | 1 | 27.04.2010 14:52 |
Regex | CWD | Общие вопросы .NET | 6 | 14.11.2009 23:42 |