【问题标题】:extracting texts based on font family type from html [duplicate]从html中提取基于字体系列类型的文本[重复]
【发布时间】:2019-11-12 00:18:55
【问题描述】:

我有一个 html 数据,我只想提取粗体字体类型的文本。

<span style="font-family: ABCDEE+Cambria,Bold; font-size:9px">Pinecone Functions 
<br></span></div><div style="position:absolute; border: textbox 1px solid; writing-mode:lr-tb; left:419px; top:1903px; width:76px; height:11px;"><span style="font-family: ABCDEE+Calibri,Bold; font-size:7px">Trainee Sign-Off 
<br></span></div>

我只想要字体系列下的文本:ABCDEE+Cambria, Bold。

with open('/home/output4.html') as file:
    text = file.read()

soup = BeautifulSoup(text, 'html.parser')

x = soup.find_all('span', style=re.compile(r'font-family: ABCDEE+Cambria,Bold.*'))
for rows in x:
    print(rows.text)

我试过这个 bt 结果是空列表。

【问题讨论】:

  • 可能还会显示您尝试解析/提取的 html 示例

标签: python html regex beautifulsoup html-parsing


【解决方案1】:

+ 是正则表达式中的一个特殊字符,您应该转义它(注意 \+ 而不是 +

示例:

from bs4 import BeautifulSoup
import re

text = """
<span style="font-family: ABCDEE+Cambria,Bold; font-size:9px">Pinecone Functions 
<br></span></div><div style="position:absolute; border: textbox 1px solid; writing-mode:lr-tb; left:419px; top:1903px; width:76px; height:11px;"><span style="font-family: ABCDEE+Calibri,Bold; font-size:7px">Trainee Sign-Off 
<br></span></div>
"""

soup = BeautifulSoup(text, 'html.parser')

x = soup.find_all('span', style=re.compile(r'font-family: ABCDEE\+Cambria,Bold.*'))
for rows in x:
    print(rows.text)

输出:

松果函数

【讨论】:

  • 它还提供了其他没有粗体的其他字体类型文本。
  • 真的吗?你能举个例子吗?看起来很奇怪,因为它必须匹配正则表达式模式中的Bold
  • cone 是一个 Ar 应用程序,用于提取、转换、验证并将客户交易文件加载到
    平台。
  • 甚至来自这个 html 的文本也被打印出来了
  • 我不知道,我复制了我的代码并将 text 更改为您的新代码,它对我没有任何回报...即使使用原始 text 并将“粗体”更改为“ Bod" 什么都不返回。
猜你喜欢
  • 2012-08-31
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-23
  • 1970-01-01
  • 2012-02-09
相关资源
最近更新 更多