4

我正在尝试从 python 中的 pdf 中提取“斜体”内容。我已将 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">•&lt;/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)

我不知道我怎样才能只得到斜体文本。

4

1 回答 1

4

尝试这个:

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是否在属性内,如果是,则返回 True。

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

于 2016-09-12T20:06:41.350 回答