【发布时间】:2019-12-25 16:07:53
【问题描述】:
我正在尝试从 HTML 文件中提取某个部分。具体来说,我查找 10-K 文件(某公司的美国业务报告)的“ITEM 1”部分。例如。: https://www.sec.gov/Archives/edgar/data/1591890/000149315218003887/form10-k.htm#a_002
问题:但是,我找不到“ITEM 1”部分,也不知道如何告诉我的算法从“ITEM 1”那个点搜索到另一个点(例如“ITEM 1A”)并提取其间的文本。
非常感谢您的帮助。
除其他外,我已经尝试过这个(和类似的),但我的bd 总是空的:
try:
# bd = soup.body.findAll(text=re.compile('^ITEM 1$'))
# bd = soup.find_all(name="ITEM 1")
# bd = soup.find_all(["ITEM 1", "ITEM1", "Item 1", "Item1", "item 1", "item1"])
print(" Business Section (Item 1): ", bd.content)
except:
print("\n Section not found!")
使用 Python 3.7 和 Beautifulsoup4
问候赫卡
【问题讨论】:
-
我相信用xpath更容易,也就是说不用beautifulsoup,而是用lxml。如果您有兴趣,我可以发布答案。
-
感谢您的回答。如果你能给我一个关于你的 lxml 解决方案的提示,那就太好了。我之前也尝试过,但无法管理。
-
我不确定您需要什么样的提示。我可以按照我的建议发布答案,您可以对其进行测试。答案适用于该特定文件,但所有 EDGAR 文件的根本问题是它们不需要使用统一格式,因此每个文件管理器/edgarization 提供者对它们的格式不同,这意味着许多解决方案有时有效,有时无效。这只是 EDGAR 的现实生活......
-
啊,我明白了!谢谢。我很乐意尝试您的解决方案!
-
见下面的答案。
标签: python html beautifulsoup text-extraction edgar