Python 从 html 中提取斜体内容

Python extract italic content from html

我正在尝试从 python 中的 pdf 中提取 'Italic' 内容。我已将 pdf 转换为 html,以便我可以使用斜体标签来提取文本。 这是 html 的样子

<br></span></div><div style="position:absolute; border: textbox 1px
solid; writing-mode:lr-tb; left:71px; top:225px; width:422px;
height:15px;"><span style="font-family: TTPGFA+Symbol; font-
size:12px">•</span><span style="font-family: YUWTQX+ArialMT; font-
size:14px">  Kornai, Janos. 1992. </span><span style="font-family:
PUCJZV+Arial-ItalicMT; font-size:14px">The Socialist System: The
Political Economy of Communism</span><span style="font-family:
YUWTQX+ArialMT; font-size:14px">.

代码如下所示:

from bs4 import BeautifulSoup
soup = BeautifulSoup(open("/../..myfile.html"))
bTags = []
for i in soup.findAll('span'):
    bTags.append(i.text)

我不确定如何才能只获得斜体文本。

试试这个:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html)
bTags = []
for i in soup.find_all('span', style=lambda x: x and 'Italic' in x):
    bTags.append(i.text)

print bTags

将函数传递给 style 参数将根据该函数的结果过滤结果,其输入为 style 属性的值。我们检查字符串 Italic 是否在属性内部,如果是,则 return True.

您可能需要更复杂的算法,具体取决于您 HTML 的其余部分。