У вас правильная идея.Я думаю, вместо того, чтобы сразу находить все теги <td>
(которые будут возвращать по одному <td>
для каждой строки (140 строк) и каждого столбца в строке (4 столбца)), если вам нужны только названия компаний,может быть проще найти все строки (теги <tr>
), а затем добавить столько столбцов, сколько вы хотите, итерируя <td>
в каждой строке.Будет получен первый столбец с названиями компаний:
import requests
from bs4 import BeautifulSoup
page = requests.get('https://topworkplaces.com/publication/ocregister/')
soup = BeautifulSoup(page.text,'html.parser')
all_company_list = soup.find_all('tr')
company_list = [c.find('td').text for c in all_company_list[1::]]
Теперь company_list
содержит все 140 названий компаний:
>>> print(len(company_list))
['Advanced Behavioral Health', 'Advanced Management Company & R³ Construction Services, Inc.',
...
, 'Wes-Tec, Inc', 'Western Resources Title Company', 'Wunderman', 'Ytel, Inc.', 'Zillow Group']
Измените c.find('td')
на c.find_all('td')
и повторите этосписок, чтобы получить все столбцы для каждой компании.