В настоящее время я пытаюсь собрать данные из 1001TrackLists, веб-сайта, на котором перечислены треки в виде миксов DJ, используя BeautifulSoup.
Я написал скрипт для сбора всей информации о треках и создания фрейма данных, который отлично работал, когда я впервые закончил и вернул данные, как и ожидалось. Однако, когда я закрыл свой блокнот jupyter и перезапустил Python, скрипт возвращает пустой кадр данных, который возвращает только заголовки столбцов. Каждый список в циклах for, который я создал и использовал для построения кадра данных, также пуст.
Я попытался перезапустить ядро, перезапустить / очистить вывод и перезагрузить компьютер - похоже, ничего не работает.
Вот мой код:
from bs4 import BeautifulSoup as bs
import requests
import pandas as pd
import numpy as np
import re
import urllib.request
import matplotlib.pyplot as plt
url_list = ['https://www.1001tracklists.com/tracklist/yj03rk/joy-orbison-resident-advisor-podcast-331-2012-10-01.html', 'https://www.1001tracklists.com/tracklist/50khrzt/joy-orbison-greenmoney-radio-2009-08-16.html', 'https://www.1001tracklists.com/tracklist/7mzt0y9/boddika-joy-orbison-rinse-fm-hessle-audio-cover-show-2014-01-16.html', 'https://www.1001tracklists.com/tracklist/6l8q8l9/joy-orbison-bbc-radio-1-essential-mix-2014-07-26.html', 'https://www.1001tracklists.com/tracklist/5y6fl1k/kerri-chandler-joy-orbison-ben-ufo-bbc-radio-1-essential-mix-07-18-live-from-lovebox-festival-2015-07-24.html', 'https://www.1001tracklists.com/tracklist/1p6g9u49/joy-orbison-andrew-lyster-nts-radio-2016-07-23.html', 'https://www.1001tracklists.com/tracklist/qgz18zk/joy-orbison-dekmantel-podcast-081-2016-08-01.html', 'https://www.1001tracklists.com/tracklist/26wlts2k/george-fitzgerald-joy-orbison-bbc-radio-1-residency-2016-11-03.html', 'https://www.1001tracklists.com/tracklist/t9gkru9/james-blake-joy-orbison-bbc-radio-1-residency-2018-02-22.html', 'https://www.1001tracklists.com/tracklist/2gfzrxw1/joy-orbison-felix-hall-nts-radio-2019-08-23.html']
djnames = []
tracknumbers = []
tracknames = []
artistnames = []
mixnames = []
dates = []
url_scrape = []
for url in url_list:
count = 0
headers = {'User-Agent': 'Chrome/51.0.2704.103'}
page_link = url
page_response = requests.get(page_link, headers=headers)
soup = bs(page_response.content, "html.parser")
title = (page_link[48:-15])
title = title.replace('-', ' ')
title = (title[:-1])
title = title.title()
date = (page_link[-15:-5])
tracknames_scrape = soup.find_all("div", class_="tlToogleData")
artistnames_scrape = soup.find_all("meta", itemprop="byArtist")
for (i, track) in enumerate(tracknames_scrape):
if track.meta:
trackname = track.meta['content']
tracknames.append(trackname)
mixnames.append(title)
dates.append(date)
djnames.append('Joy Orbison')
url_scrape.append(url2)
count +=1
tracknumbers.append(count)
else:
continue
for artist in artistnames_scrape:
artistname = artist["content"]
artistnames.append(artistname)
df = pd.DataFrame({'DJ Name': djnames, 'Date': dates, 'Mix Name': mixnames, 'Track Number': tracknumbers,'Track Names': tracknames, 'Artist Names': artistnames, 'URL':url_scrape})