我正在尝试从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)
我不知道如何才能获得斜体文字。
答案 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的其余部分,您可能需要更复杂的算法。