извлечь некоторые тексты из HTML - PullRequest
0 голосов
/ 04 июня 2019

У меня есть html «страница» следующим образом:

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>&nbsp;</span></p>

<p class=MsoNormal><span style='font-size:11.0pt'>ヤブツバキクラス(常緑広葉樹林)</span><span
style='font-size:11.0pt;font-family:"Times New Roman","serif"'> <span
lang=EN-US>Camellietea japonicae</span><span lang=EN-US> Miyawaki <i>et</i>
Ohba 1963<br>
</span></span><span style='font-size:11.0pt'> リュウキュウガキ-クスノハガシワオーダー</span><span
style='font-size:11.0pt;font-family:"Times New Roman","serif"'> <span
lang=EN-US>Diospyro maritimae-Mallotetalia philippensis</span><span lang=EN-US>
Fujiwara 1981<br>
</span></span><span style='font-size:11.0pt'>  ナガミボチョウジ-リュウキュウガキ群団</span><span
style='font-size:11.0pt;font-family:"Times New Roman","serif"'> <span
lang=EN-US>Psychotrio manilensis-Diospyrion maritimae</span><span lang=EN-US>
Niiro <i>et al.</i> 1974<br>

Мне нужно извлечь следующее:

ヤ ブ ツ バ キ ス ス (常緑 広 葉樹林), Camellietea japonicae

Osp ュ ウ キ ュ ウ ガ キ - ク ス ノ ハ ガ シ ワ オ ダ Di, Diospyro maritimae-Mallotetalia philippensis

ガ ガ ミ ボ ョ ョ ウ tried tried 101

Но, это извлекается следующим образом:

ヤブツバキクラス(常緑広葉樹林)
Camellietea
Camellietea
Miyawaki
リュウキュウガキ−クスノハガシワオーダー
Diospyro
Diospyro
Fujiwara
ナガミボチョウジ−リュウキュウガキ群団
Psychotrio
Psychotrio
Niiro

Ответы [ 2 ]

1 голос
/ 04 июня 2019

Просмотрите результаты и возьмите первые два из каждых четырех отрезков:

for i in range(1, len(rows), 4):
    print(rows[i].string.strip(), 
          list(rows[i+1].children)[1].string.strip())

#ヤブツバキクラス(常緑広葉樹林)Camellietea japonicae
#リュウキュウガキ-クスノハガシワオーダー Diospyro maritimae-Mallotetalia philippensis
#ナガミボチョウジ-リュウキュウガキ群団 Psychotrio manilensis-Diospyrion maritimae
0 голосов
/ 04 июня 2019

Вы также можете использовать селекторы first-child и attribute = value с помощью bs4 4.7.1

from bs4 import BeautifulSoup as bs

html = '''
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'>&nbsp;</span></p>
<p class=MsoNormal><span style='font-size:11.0pt'>ヤブツバキクラス(常緑広葉樹林)</span><span
style='font-size:11.0pt;font-family:"Times New Roman","serif"'> <span
lang=EN-US>Camellietea japonicae</span><span lang=EN-US> Miyawaki <i>et</i>
Ohba 1963<br>
</span></span><span style='font-size:11.0pt'> リュウキュウガキ-クスノハガシワオーダー</span><span
style='font-size:11.0pt;font-family:"Times New Roman","serif"'> <span
lang=EN-US>Diospyro maritimae-Mallotetalia philippensis</span><span lang=EN-US>
Fujiwara 1981<br>
</span></span><span style='font-size:11.0pt'>  ナガミボチョウジ-リュウキュウガキ群団</span><span
style='font-size:11.0pt;font-family:"Times New Roman","serif"'> <span
lang=EN-US>Psychotrio manilensis-Diospyrion maritimae</span><span lang=EN-US>
Niiro <i>et al.</i> 1974<br>
  '''

soup = bs(html, 'lxml')
print([i.text.strip() for i in item.select('span[style="font-size:11.0pt"], [lang=EN-US]:first-child')])

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...