Python从html中提取斜体内容

时间:2016-09-12 19:42:35

标签: python html italic

我正在尝试从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)

我不知道如何才能获得斜体文字。

1 个答案:

答案 0 :(得分:2)

试试这个:

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的其余部分,您可能需要更复杂的算法。