通过指定两个内容在表中找到漂亮的汤链接

时间:2018-06-30 04:38:46

标签: python beautifulsoup

如何获取结果网址:https://www.sec.gov/Archives/edgar/data/1633917/000163391718000094/0001633917-18-000094-index.htm

...从此页面开始...

https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0001633917&owner=exclude&count=40

...通过指定date = '2018-04-25,我想要8-k进行归档吗?我是否循环播放,还是有一个班轮代码可以获取结果?

from bs4 import BeautifulSoup
from bs4.element import Comment
import requests

date='2018-04-25'
CIK='1633917'

url = 'https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=' + CIK + '&owner=exclude&count=100'
r = requests.get(url)
soup = BeautifulSoup(r.text,'html.parser')
a=soup.find('table', class_='tableFile2').findAll('tr')
for i in a:
    print i

1 个答案:

答案 0 :(得分:1)

没有任何班轮代码可以得到想要的东西。您必须遍历各行,然后检查这些值是否匹配。

但是,有一种更好的方法可以缩小行的范围。您可以直接选择与其中一个值匹配的行。例如,您可以选择所有具有date = '2018-04-25'的行,然后检查Filing是否匹配。

代码:

for date in soup.find_all('td', text='2018-04-25'):
    row = date.find_parent('tr')
    if row.td.text == '8-K':
        link = row.a['href']
        print(link)

输出:

/Archives/edgar/data/1633917/000163391718000094/0001633917-18-000094-index.htm

因此,在这里,您不必遍历所有行,而只需遍历具有所需日期的行。在这种情况下,只有这样的一行,因此我们仅循环一次。