Specifi c ползание по красивому супу в python - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь изучить beautifulsoup.

На веб-сайте у него такой же href с разными результатами.

Например, результаты моего кода:

0001545654

6798

HI

0001459640

TX

0001269765

CA

0001456527

CA

0001001379

GA

Я хотел бы вывести только для номеров

URL для номеров = a href = " / cgi-bin / browse-edgar? action = getcompany & CIK = 0001545654 & owner = exclude & count = 40 & hidefilings = 0 "> 0001545654

URL для областей = a href =" / cgi-bin / browse-edgar? action = getcompany & State = HI & owner = exclude & count = 40 & hidefilings = 0 "> HI

Я хочу привезти только за CIK!

А есть ли возможность привезти только за CIK (0001545654)?

from selenium import webdriver
from bs4 import BeautifulSoup
from urllib.request import urlopen

url = 'https://www.sec.gov/cgi-bin/browse-edgar?company=a&owner=exclude&action=getcompany'
page = BeautifulSoup(urlopen(url), 'html.parser')

CIK = page.find('table', 'tableFile2').find_all('a')

#print(CIK)
for i in CIK:
    print(i.get_text())

1 Ответ

0 голосов
/ 25 мая 2020

Простейшим решением может быть фильтрация результатов так, чтобы в них содержались только действительные целые числа:

CIK = [i for i in CIK if str(i.get_text()).isnumeric()]

В качестве альтернативы вы можете уточнить парсинг BeautifulSoup, чтобы получить только первый элемент каждой строки:

CIK = [e.find_all('a')[0] for e in page.find('table', 'tableFile2').find_all('tr')]
...