美丽的小组返回非类型



我正在尝试使用以下python代码从edgar数据库中获取一些数据。

html1 = 'https://www.sec.gov/Archives/edgar/data/320193/000032019317000070/aapl-20170930.xml'
xbrl_resp = requests.get(html1)
xbrl_str = xbrl_resp.text
soup1 = BeautifulSoup(xbrl_str, 'lxml')
mytag = soup1.find('us-gaap:StockholdersEquity',{'contextRef':'FI2017Q4'})
print(mytag)

即使标签存在于XML文件中,也不会返回。任何建议都将不胜感激

您遇到了一些问题。首先,通过请求的内容而不是文本。其次,使用XML解析器代替LXML解析器。最后,您在" us-gaap:股东equity"标签中错误地搜索。

html1 = 'https://www.sec.gov/Archives/edgar/data/320193/000032019317000070/aapl-20170930.xml'
xbrl_resp = requests.get(html1)
xbrl_str = xbrl_resp.content
soup1 = BeautifulSoup(xbrl_str, 'xml')
mytag = soup1.find('us-gaap:StockholdersEquity',contextRef='FI2017Q4')
print(mytag)

XML解析器将XML标签转换为小写:请参阅此处:https://www.crummy.com/software/beautiffe-/beautifulsoup/bs4/doc/doc/#parsing-xml。因此,您需要使用小写名称搜索,例如:

     mytag = soup1.find('us-gaap:stockholdersequity',contextref='FI2017Q4')

i有同样的 soup.find('table')返回 None。此问题发生在LXML软件包版本为3.4.4的环境中。

在另一个具有LXML版本3.7.3的环境上,相同的代码正常工作。

所以,我回到了"不良"环境并升级了LXML软件包版本。

pip install lxml --upgrade

soup.find('table')之后开始工作。

希望这会有所帮助!

ram

最新更新