Я работаю над скребком, использующим Beautifulsoup, для извлечения информации о концертах для некоторых артистов на songkick. URL, с которым я работаю, находится здесь https://www.songkick.com/metro-areas/17835-us-los-angeles-la/february-2020?page=1. Я смог извлечь всю информацию об артисте, месте проведения, городе и штате, единственное, с чем у меня проблемы - это извлечение даты концертов.
При просмотре элементов html я обратите внимание, что даты показа указаны в виде значений li title = "суббота 01 февраля 2020", например, дети в ul class = "event-листинги". Метод, который я пытался выполнить, заключался в извлечении значений времени и времени, которые вложены в заголовки li, но мои выходные данные включали полную разметку html для каждого времени li времени datetime, а не только datetime. Я ищу либо извлечь названия li или значения времени и времени. У этих li тоже нет класса.
Вот мой код
import requests
from bs4 import BeautifulSoup as bs4
pages=[]
artists=[]
venues=[]
dates=[]
cities=[]
states=[]
pages_to_scrape=1
for i in range(1, pages_to_scrape+1):
url = 'https://www.songkick.com/metro-areas/17835-us-los-angeles-la/february-2020?page={}'.format(i)
pages.append(url)
for item in pages:
page = requests.get(item)
soup = bs4(page.text, 'html.parser')
for m in soup.findAll('li', title=True):
date = m.find('time')
print(date)
Вывод:
<time datetime="2020-02-01T20:00:00-0800"></time>
<time datetime="2020-02-01T20:00:00-0800"></time>
<time datetime="2020-02-01T19:00:00-0800"></time>
<time datetime="2020-02-01T19:00:00-0800"></time>
<time datetime="2020-02-01T21:00:00-0800"></time>
etc...
Ищем вывод, подобный этому:
2020-02-01
2020-02-01
2020-02-01
etc...
Или, если есть возможность получить значения заголовка li, то как это вывести вот так:
Saturday 01 February 2020
Saturday 01 February 2020
Saturday 01 February 2020
Saturday 01 February 2020
etc...
Мне любопытно, смогу ли я разделить на "для времени, даты и времени , но так как это не текст, я не думаю, что это возможно. Кроме того, я не хочу брать первый li class = "with-date", так как это просто заголовок даты для страницы о том, почему я не только захватывая все ли.