powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм выбора наибольшего фрагмента текста из html страницы
18 сообщений из 18, страница 1 из 1
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35506835
Random_Goodman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Камрады, поделитесь вашим мнением по сабжу.
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35506999
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Random_Goodman:
Можно пример? Типа, вот есть такой-то HTML-код, и хочется на выходе получить то-то.
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507016
Random_Goodman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот например: http://vz.ru/society/2008/8/26/200676.html

требуется текст от "Праздник «выстраданного признания»
Абхазия и Южная Осетия празднуют признание своего..." до "Мы на века с Россией".
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507143
Gatman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
найте где наибольшее расстояние между <td> и </td> среди тех, что не имеют вложенных <td> ?
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507240
Random_Goodman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если таблицы нет и все в div?
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507282
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будем рассматривать пессимистичный вариант, когда весь текст страницы создан из JScript?
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507305
retty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вам мой 0-вариант?
Выделяем тексты из всех div-тегов, с учетом их вложенности.
Для простоты считаем что мы заранее удалили из html-кода все не-div теги.
То же самое можно проделать и для <td> тегов (т.е. для тегов где обычно помещают куски текста).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
def foo(st, cnt):
    global ct
    ct = max(ct,cnt)
    z = s.find('<', st)
    res[cnt] += s[st:z]
    if s[z:z+ 6 ] == '</div>':
        return z+ 6 
    else:
        w = foo(z+ 6 , cnt+ 1 )
        return foo(w, cnt)



s = """
aaa<div1>1+<div2>22+<div3>333+333</div>2222</div>1+1</div>
bbbbb<div4>4%%%<div5>5#5</div>$$$4</div>ccc<div6>!6-6-6!</div>cc
"""

res = ['']* 500 
i =  0 
ct = - 1 

while  1 :
    i = s.find('<div', i)
    if i == - 1 :
        break
    i = s.find('>', i)
    i = foo(i+ 1 , ct+ 1 )

for txt in res[:ct+ 1 ]:
    print txt



>>> ============== RESTART =====================================
>>> 
 1 + 1 + 1 
 22 + 2222 
 333 + 333 
 4 %%%$$$ 4 
 5 # 5 
! 6 - 6 - 6 !
>>> 
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507507
retty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
def foo(st, cnt):
    global ct
    ct = max(ct,cnt)
    z = s.find('<', st)
    res[cnt] += s[st:z]
    if s[z:z+ 6 ] == '</div>':
        return z+ 6 
    else:
        ct +=  1 
        w = foo(s.find('>', z)+ 1 , ct)
        return foo(w, cnt)


-- читаем файл и избавляемся от "левых" тегов:
/*
f = open('D:/rg2.html', 'rt')
html = f.read()
f.close()

html = html.replace(' ', ' ')
html = html.replace('\n', ' ')

s, i, j, k = '', 0, 0, 0

while 1:
    i = html.find('<', j)
    if i == -1:
        break
    s += html[k:i]
    j = html.find('>', i)
    if html.find('div', i, j) != -1:
        k = i
    else:
        k = j + 1
*/

res = ['']* 500 
i =  0 
ct = - 1 

while  1 :
    i = s.find('<div', i)
    if i == - 1 :
        break
    i = s.find('>', i)
    try:
        i = foo(i+ 1 , ct+ 1 )
    except:
        break

for txt in res[:ct+ 1 ]:
    print txt
    print '---------------------------------------------------------'


Образчик работы:


Пусто
<div id="blogger-code-text-wrapper" class="ta">ЭТО САМЫЙ ПЕРВЫЙ DIV БЕЗ ВЛОЖЕНИЙ</div>
Пусто
<div class="text">
<p><B>Две кавказские республики ликуют: Дмитрий Медведев решил признать суверенитет Абхазии и Южной Осетии. Как рассказали газете ВЗГЛЯД жители Сухуми и Цхинвали, в данный момент там начался настоящий праздник: люди едут по городу с осетинскими, абхазскими и российскими флагами, стреляют в воздух, накрывают столы и раздают шампанское. И в Абхазии, и в Южной Осетии не сомневаются, что вслед за Россией их признает весь мир.</B>
<p>В понедельник депутаты верхней и нижней палат российского парламента, досрочно вернувшиеся с каникул, единодушно <a href= http://www.vz.ru/politics/2008/8/25/200317.html target=_blank>одобрили</a> обращения к президенту Дмитрию Медведеву с предложением признать суверенитет Сухуми и Цхинвали.
<p>
<p><p><cite>«Отмечать праздник в Абхазии начали еще вчера. Но так, очень тихо, чтобы нечаянно не сглазить. Сегодня уже ничего не страшно»</cite>
<div id="6">Сенсация дня: обрушение коровника в Нью-Васюках!</div>
ПИПЕЦ
<div id="7">Шубы на любой вкус: лучшие сорта рыбьего и воробьиного мехов!</div>
В специальном <a href= http://www.vz.ru/politics/2008/8/26/200633.html target=_blank>телеобращении</a> во вторник Дмитрий Медведев заявил, что отныне Россия официально признает независимость Абхазии и Южной Осетии. Глава государства уже подписал соответствующие указы и призвал другие страны последовать примеру России. При этом Дмитрий Медведев подчеркнул, что неоднократные попытки Грузии решить проблему своей территориальной целостности силой фактически не оставили России выбора.
<p>
<p>«После того, что произошло в Южной Осетии, народы Южной Осетии и Абхазии имеют право самостоятельно решать свою судьбу. Учитывая их свободное волеизъявление, я подписал указы о признании независимости Южной Осетии и Абхазии», – подчеркнул он.
<p>
<p>«Это нелегкое решение, но это единственный способ сохранить жизни людей», – сказал Медведев.
<p>
<p>Долгожданное решение главы российского государства в Абхазии и Южной Осетии превратилось в праздник.
<p>
<p>«Мы выстрадали это признание! Выстрадали! Столько лет! 15 лет! – не скрывая своих эмоций, рассказывал газете ВЗГЛЯД по телефону о своих ощущениях житель Сухуми, 28-летний Гурам. – Слышишь, как стреляют?»
<p>
<p>На том конце провода слышен звон бокалов, стрельба, восторги и поздравления.
<p>
<p>
<div id="related" style="width:180px;">
<h3 class="nomargin red" style="width:100%">Третий див</h3>
<div class="hot2" style="width:100%">---- Это
<div class="hoti">
<table cellspacing="0" cellpadding="0" border="0"><tr><td>
<a href="/r/"><img src="http://img.vz.ru/upimg/ne_/ne_200687.jpg"></a>
<a href="/r/" >Грузия готова разорвать дипотношения с Россией</a>
</td></tr></table>
-- ЭТО ПЯТЫЙ ДИВ --</div>
четвертый див ----</div>
---- КОНЕЦ ТРЕТЬЕГО ДИВА ----</div>
---- КОНЕЦ ВТОРОГО ДИВА ----</div>
<!>



>>> ================ RESTART =====================================
>>>
ЭТО САМЫЙ ПЕРВЫЙ DIV БЕЗ ВЛОЖЕНИЙ
---------------------------------------------------------
Две кавказские республики ликуют: Дмитрий Медведев решил признать суверенитет Абхазии и Южной Осетии. Как рассказали газете ВЗГЛЯД жители Сухуми и Цхинвали, в данный момент там начался настоящий праздник: люди едут по городу с осетинскими, абхазскими и российскими флагами, стреляют в воздух, накрывают столы и раздают шампанское. И в Абхазии, и в Южной Осетии не сомневаются, что вслед за Россией их признает весь мир. В понедельник депутаты верхней и нижней палат российского парламента, досрочно вернувшиеся с каникул, единодушно одобрили обращения к президенту Дмитрию Медведеву с предложением признать суверенитет Сухуми и Цхинвали. «Отмечать праздник в Абхазии начали еще вчера. Но так, очень тихо, чтобы нечаянно не сглазить. Сегодня уже ничего не страшно» ПИПЕЦ В специальном телеобращении во вторник Дмитрий Медведев заявил, что отныне Россия официально признает независимость Абхазии и Южной Осетии. Глава государства уже подписал соответствующие указы и призвал другие страны последовать примеру России. При этом Дмитрий Медведев подчеркнул, что неоднократные попытки Грузии решить проблему своей территориальной целостности силой фактически не оставили России выбора. «После того, что произошло в Южной Осетии, народы Южной Осетии и Абхазии имеют право самостоятельно решать свою судьбу. Учитывая их свободное волеизъявление, я подписал указы о признании независимости Южной Осетии и Абхазии», – подчеркнул он. «Это нелегкое решение, но это единственный способ сохранить жизни людей», – сказал Медведев. Долгожданное решение главы российского государства в Абхазии и Южной Осетии превратилось в праздник. «Мы выстрадали это признание! Выстрадали! Столько лет! 15 лет! – не скрывая своих эмоций, рассказывал газете ВЗГЛЯД по телефону о своих ощущениях житель Сухуми, 28-летний Гурам. – Слышишь, как стреляют?» На том конце провода слышен звон бокалов, стрельба, восторги и поздравления. ---- КОНЕЦ ВТОРОГО ДИВА ----
---------------------------------------------------------
Сенсация дня: обрушение коровника в Нью-Васюках!
---------------------------------------------------------
Шубы на любой вкус: лучшие сорта рыбьего и воробьиного мехов!
---------------------------------------------------------
Третий див ---- КОНЕЦ ТРЕТЬЕГО ДИВА ----
---------------------------------------------------------
---- Это четвертый див ----
---------------------------------------------------------
Грузия готова разорвать дипотношения с Россией -- ЭТО ПЯТЫЙ ДИВ --
---------------------------------------------------------
>>>
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507509
retty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБудем рассматривать пессимистичный вариант, когда весь текст страницы создан из JScript?
поржал подоброму! :) ну ты понял...
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507633
УмныйЧеловек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБудем рассматривать пессимистичный вариант, когда весь текст страницы создан из JScript?
Гугл не понимает и нам не надо.
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507883
Gatman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Random_GoodmanА если таблицы нет и все в div?
тогда нужно рассматривать вариант с div
в любом случае, если в тексте содержатся таблицы, то уже работать не будет
нужно искать начальную и конечную точку для каждого конкретного сайта по шаблону.
ИМХО, лушче реализовать в виде шаблонов для сайтов, типа, кто-то настраивает для сайта шаблон, и программа потом по нему ищет текст. можно даже чтобы пользователь это делал - просто выделить мышью то что нужно, найти к html коде начало и конец выделенного, найти ближайшие контейнерные теги от начала и от конца, ну и от них проследить иерархию и куда-нибудь сохранить, а при последующей работой с этим сайтом использовать этот шаблон.

Или ещё как вариант - искать всё так же самый большой контейнер без вложенных контейнеров более заданного размера и это принимать за основной текст, хотя, ИМХО, работать будет от случая к случаю
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35507978
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Что-нибудь интересного раскопали про функциональные языки? (Читал тот эпический топик с Ксеноцефалом и сам заинтересовался)
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35508060
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den mayton

Что-нибудь интересного раскопали про функциональные языки? (Читал тот эпический топик с Ксеноцефалом и сам заинтересовался)

Увы мне... увы... Пашу как вол на ниве баз данных. Времени совсем нету. Пора завязывать с Ораклом. :)

ЗЫ. Топ с Луговским действительно захватывающий.
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35508101
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЗЫ. Топ с Луговским действительно захватывающий. ссылочкой не кинетесь, если не в лом? не могу после отпуска в работу войти. автор - сорри за офтоп
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35508129
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych maytonЗЫ. Топ с Луговским действительно захватывающий. ссылочкой не кинетесь, если не в лом? не могу после отпуска в работу войти. автор - сорри за офтоп

Кажется вот
этот
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35508233
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, взять бы небольшой проектик и написать его на лиспе:) Заодно бы научился и принял истинную веру
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35508600
zloy denЭх, взять бы небольшой проектик и написать его на лиспе:)
генератор постов Луговского. на Common Lisp.
...
Рейтинг: 0 / 0
Алгоритм выбора наибольшего фрагмента текста из html страницы
    #35508895
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКажется вот
этот спасибо
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм выбора наибольшего фрагмента текста из html страницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]