使用BeautifulSoup查找<p样式类



我正在尝试使用我在这里找到的代码抓取微软的损益表:如何Web抓取SEC Edgar 10-K动态数据

他们使用'span'类来缩小搜索范围。我没有看到span,所以我尝试使用<p类,但运气不好。>

这是我的代码,它与给出的答案基本没有变化。我改变了base_url,并试图改变汤。找到"p"。有没有一种方法可以找到<p类,或者更好的是,有一种方法可以找到损益表图表?>

下面是该语句的URL: https://www.sec.gov/Archives/edgar/data/789019/000156459018019062/msft-10k_20180630.htm

from bs4 import BeautifulSoup
import requests

headers = {"User-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"}
# Obtain HTML for search page
base_url = "https://www.sec.gov/Archives/edgar/data/789019/000156459018019062/msft-10k_20180630.htm"
edgar_resp = requests.get(base_url, headers=headers)
edgar_str = edgar_resp.text

soup = BeautifulSoup(edgar_str, 'html.parser')
s =  soup.find('p', recursive=True, string='INCOME STATEMENTS ')
t = s.find_next('table')
trs = t.find_all('tr')
for tr in trs:
if tr.text:
print(list(tr.stripped_strings))
下面是示例中的代码:
from bs4 import BeautifulSoup
import requests

headers = {"User-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"}
# Obtain HTML for search page
base_url = "https://www.sec.gov/Archives/edgar/data/200406/000020040621000057/jnj-20210704.htm"
edgar_resp = requests.get(base_url, headers=headers)
edgar_str = edgar_resp.text

soup = BeautifulSoup(edgar_str, 'html.parser')
s =  soup.find('span', recursive=True, string='SALES BY SEGMENT OF BUSINESS ')
t = s.find_next('table')
trs = t.find_all('tr')
for tr in trs:
if tr.text:
print(list(tr.stripped_strings))

谢谢!

我不知道为什么不工作,但你可以试试这个:

s = soup.find('a', attrs={'name':'INCOME_STATEMENTS'})

应该匹配该段中的<a name="INCOME_STATEMENTS"></a>元素。

最新更新