如何使用python解析txt格式的html?

如何使用python解析txt格式的html?,python,html,parsing,Python,Html,Parsing,我正在尝试解析一个txt,示例如下链接。 然而,txt是html格式的。我正在尝试获取位于文件顶部的“公司一致名称”,我的函数应返回“Monocle Acquisition Corp”。 我试过以下方法: import requests from bs4 import BeautifulSoup url = 'https://www.sec.gov/Archives/edgar/data/1754170/0001571049-19-000004.txt' r = requests.get(u

我正在尝试解析一个txt,示例如下链接。 然而,txt是html格式的。我正在尝试获取位于文件顶部的“公司一致名称”,我的函数应返回“Monocle Acquisition Corp”。

我试过以下方法:

import requests
from bs4 import BeautifulSoup

url = 'https://www.sec.gov/Archives/edgar/data/1754170/0001571049-19-000004.txt'
r = requests.get(url)
soup = BeautifulSoup(r.content, "html")
然而,“汤”根本不包含“公司一致名称”。
有人能给我指出正确的方向吗?

你看起来像是在一个巨大的标签里

您可以使用
soup.find('sec-header')获取整个部分。
但是,您需要手动解析该部分,类似这样的方法是可行的,但这是一项肮脏的工作:

(在replit中查看:)


可能有一些库能够比此代码更好地解析此数据

您要查找的数据不在HTML结构中,因此Beautiful Soup不是最好的工具。搜索此数据的正确且快速的方法就是使用以下简单的正则表达式:

import re
import requests

url = 'https://www.sec.gov/Archives/edgar/data/1754170/0001571049-19-000004.txt'
r = requests.get(url)
text_string = r.content.decode()

name_re = re.compile("COMPANY CONFORMED NAME:[\\t]*(.+)\n")

match = name_re.search(text_string).group(1)
print(match)

这个文档似乎包含一些HTML,但您感兴趣的部分不是HTML。你不能用漂亮的汤来解析它。
import re
import requests

url = 'https://www.sec.gov/Archives/edgar/data/1754170/0001571049-19-000004.txt'
r = requests.get(url)
text_string = r.content.decode()

name_re = re.compile("COMPANY CONFORMED NAME:[\\t]*(.+)\n")

match = name_re.search(text_string).group(1)
print(match)