Я использую Python и BeautifulSoup для очистки некоторых данных с этого сайта.
Код:
import requests
from bs4 import BeautifulSoup
eclipse_time_date = requests.get("https://www.timeanddate.com/eclipse/")
soup = BeautifulSoup(eclipse_time_date.text, 'html.parser')
eclipse_info = soup.find_all("div", class_= "six columns art__eclipse-txt")
for info in eclipse_info:
print("Eclipse Date: {0}".format(info.find('a').text))
print("Location: {0}".format(info.find('p').text))
Вывод:
Eclipse Date: July 13, 2018 — Partial Solar Eclipse
Location: South in Australia, Pacific, Indian Ocean New Features: Path Map | 3D Path Globe | Eclipse Information
Eclipse Date: July 27, 2018 — Total Lunar Eclipse
Location: Much of Europe, Much of Asia, Australia, Africa, South in North America, South America, Pacific, Atlantic, Indian Ocean, Antarctica New Features: Path Map | 3D Path Globe | Eclipse Information
Моя проблема в том, что часть после местоположений, New Features:
и т. Д., Также имеет тег p
.Как мне проигнорировать эту часть, чтобы мой вывод был таким:
Eclipse Date: July 13, 2018 — Partial Solar Eclipse
Location: South in Australia, Pacific, Indian Ocean
Eclipse Date: July 27, 2018 — Total Lunar Eclipse
Location: Much of Europe, Much of Asia, Australia, Africa, South in North America, South America, Pacific, Atlantic, Indian Ocean, Antarctica
Я мог бы использовать split()
и найти индекс New, однако в некоторых местах есть слово New, например, в расположении "Нью-Йорк "или" Новый Орлеан ".
Хотелось бы узнать, есть ли способ извлечения данных с помощью BeautifulSoup?