diff --git a/01_Billboard.ipynb b/01_Billboard.ipynb index 779a38c..bf5d723 100644 --- a/01_Billboard.ipynb +++ b/01_Billboard.ipynb @@ -41,7 +41,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "promotional-algorithm", "metadata": {}, "outputs": [], @@ -59,12 +59,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "civic-broad", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# 200 status code means OK!" + "response = requests.get(url)\n", + "response.status_code" ] }, { @@ -77,11 +89,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "revised-digest", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "soup = BeautifulSoup(response.content, \"html.parser\")" + ] }, { "cell_type": "markdown", @@ -93,20 +107,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "falling-chambers", "metadata": {}, "outputs": [], "source": [ "# song titles\n", + "songs = soup.find_all(\"span\", class_=\"chart-element__information__song text--truncate color--primary\")\n", "\n", "# artists\n", + "artists = soup.find_all(\"span\", class_=\"chart-element__information__artist text--truncate color--secondary\")\n", "\n", "# last week\n", + "last_week_ranks = soup.find_all(\"span\", class_= \"chart-element__meta text--center color--secondary text--last\")\n", "\n", "# peak rank\n", + "peak_ranks = soup.find_all(\"span\", class_= \"chart-element__meta text--center color--secondary text--peak\")\n", "\n", - "# weeks on chart\n" + "# weeks on chart\n", + "weeks_on_chart = soup.find_all(\"span\", class_= \"chart-element__meta text--center color--secondary text--week\")" ] }, { @@ -119,11 +138,15 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "amateur-protocol", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "for i in [songs, artists, last_week_ranks, peak_ranks, weeks_on_chart]:\n", + " for j in range(len(i)):\n", + " i[j] = i[j].getText()" + ] }, { "cell_type": "markdown", @@ -135,11 +158,186 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "external-instrumentation", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "billboard = pd.DataFrame(\n", + " {\"song\": songs,\n", + " \"artist\": artists,\n", + " \"last_week_rank\": last_week_ranks,\n", + " \"peak_rank\": peak_ranks,\n", + " \"weeks_on_chart\": weeks_on_chart}\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "05549a2f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
songartistlast_week_rankpeak_rankweeks_on_chart
0StayThe Kid LAROI & Justin Bieber2113
1Industry BabyLil Nas X & Jack Harlow3211
2Fancy LikeWalker Hayes5316
3Way 2 SexyDrake Featuring Future & Young Thug415
4Bad HabitsEd Sheeran6215
..................
95Esta DanadaIvan Cornejo-961
96Whiskey And RainMichael Ray-971
97TSUDrake8495
98Love AllDrake Featuring JAY-Z87105
99No WhereYoungBoy Never Broke Again40402
\n", + "

100 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " song artist last_week_rank \\\n", + "0 Stay The Kid LAROI & Justin Bieber 2 \n", + "1 Industry Baby Lil Nas X & Jack Harlow 3 \n", + "2 Fancy Like Walker Hayes 5 \n", + "3 Way 2 Sexy Drake Featuring Future & Young Thug 4 \n", + "4 Bad Habits Ed Sheeran 6 \n", + ".. ... ... ... \n", + "95 Esta Danada Ivan Cornejo - \n", + "96 Whiskey And Rain Michael Ray - \n", + "97 TSU Drake 84 \n", + "98 Love All Drake Featuring JAY-Z 87 \n", + "99 No Where YoungBoy Never Broke Again 40 \n", + "\n", + " peak_rank weeks_on_chart \n", + "0 1 13 \n", + "1 2 11 \n", + "2 3 16 \n", + "3 1 5 \n", + "4 2 15 \n", + ".. ... ... \n", + "95 96 1 \n", + "96 97 1 \n", + "97 9 5 \n", + "98 10 5 \n", + "99 40 2 \n", + "\n", + "[100 rows x 5 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "billboard" + ] } ], "metadata": { @@ -158,7 +356,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.8.8" }, "toc": { "base_numbering": 1,