Я написал скрипт на python для очистки табличного контента с веб-страницы.В первом столбце основной таблицы есть имена.Некоторые имена имеют ссылки для перехода на другую страницу, некоторые - просто имена без каких-либо ссылок.Мое намерение состоит в том, чтобы проанализировать строки, когда имя не имеет ссылки на другую страницу.Однако, когда имя имеет ссылку на другую страницу, сценарий сначала анализирует соответствующие строки из основной таблицы, а затем следует по этой ссылке для анализа связанной информации об этом имени из таблицы, расположенной внизу под заголовком Companies
.Наконец, запишите их в CSV-файл.
ссылка на сайт
Я пробовал до сих пор:
import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup
link = "https://suite.endole.co.uk/insight/company/ajax_people.php?ajax_url=ajax_people&page=1&company_number=03512889"
base = "https://suite.endole.co.uk"
res = requests.get(link)
soup = BeautifulSoup(res.text,"lxml")
for item in soup.select("table tr")[1:]:
if not item.select_one("td a[href]"):
first_table = [i.text for i in item.select("td")]
print(first_table)
else:
first_table = [i.text for i in item.select("td")]
print(first_table)
url = urljoin(base,item.select_one("td a[href]").get("href"))
resp = requests.get(url)
soup_ano = BeautifulSoup(resp.text,"lxml")
for elems in soup_ano.select(".content:contains(Companies) table tr")[1:]:
associated_info = [elem.text for elem in elems.select("td")]
print(associated_info)
Мой вышеприведенный скрипт может сделать практически все, но я не могу создать логику для печати один раз, вместо того, чтобы печатать трижды, чтобы получить все данные в целом, чтобы я мог записать их в файл CSV.