python - 从html中提取一些文本
问题描述
我有如下的html“页面”:
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Times New Roman","serif"'> </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
リュウキュウガキ-クスノハガシワオーダー,Diospyro maritimae-Mallotetalia philippensis
ナガミボチョウジ-リュウキュウガキ群団, Psychotrio manilensis-Diospyrion maritimae
我试过:
soup = BeautifulSoup(page, features="lxml")
rows = soup.find_all('span')
for row in rows:
print (row.text.strip().split(' ')[0])
但是,它提取如下:
ヤブツバキクラス(常緑広葉樹林)
Camellietea
Camellietea
Miyawaki
リュウキュウガキ−クスノハガシワオーダー
Diospyro
Diospyro
Fujiwara
ナガミボチョウジ−リュウキュウガキ群団
Psychotrio
Psychotrio
Niiro
解决方案
逐步检查结果并获取每四个跨度中的前两个:
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
推荐阅读
- gradle - Gradle 实现项目抛出异常
- javascript - Python selenium 函数 driver.execute_script() 不会在脚本中执行我的代码?
- c# - 从 Web URL 反序列化 JSON 后列表为空
- java - 微软图形 - Java;AuthorizationCodeProvider :如何获取“授权码”
- reactjs - 模拟自定义事件
- linux - 在 Redmi 7 上从 adb shell 运行 AT 命令
- node.js - ReferenceError:未定义文本
- f# - 带有 Http.fs 的 F# - 无法执行 GraphQL API
- java - Java 中 DoubleAdder 的实际用途
- node.js - 如何防止基于 Angular+Express 的离线应用程序被盗?