не удается отобразить текст внутри тега во время удаления из Интернета с помощью BeautifulSoup - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь определить продолжительность конкретной песни, используя .text (). но вывод прост, в то время как название песни и исполнителя выводятся

 from bs4 import BeautifulSoup
 import requests
 import csv
 source=requests.get("https://gaana.com/artist/arijit-singh/latest/asc").text 
 soup=BeautifulSoup(source,"lxml")
 with open("arijit_singh_new_update.csv","w") as arijit_csv_file:
    arijit_csv_file_writer=csv.writer(arijit_csv_file)
    arijit_csv_file_writer.writerow(["title","artists","duration"])
    title_tag=soup.find("div",class_="playlist_thumb_det")  
    title=title_tag.a.text
    composer_tag=soup.find("li",class_="s_artist p_artist desktop")
    composer=composer_tag.a.text
    duration_tag=soup.find("li",class_="s_duration")
    duration=duration_tag.a.text
    print(duration)

1 Ответ

0 голосов
/ 02 февраля 2020

Чтобы сохранить названия песен, исполнителей и продолжительность в CSV-файл, вы можете использовать этот пример:

import csv
import requests
from bs4 import BeautifulSoup

url = "https://gaana.com/artist/arijit-singh/latest/asc"

soup=BeautifulSoup(requests.get(url).content,"lxml")

with open('arijit_singh_new_update.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(["title","artists","duration"])

    for song, artist, duration in zip(
                            soup.select('.s_title a[data-type="playSong"]'),
                            soup.select('.s_artist [data-type="playSong"]'),
                            soup.select('.s_duration [data-type="playSong"]')):
        writer.writerow([song.text, artist.text, duration.text])

Это создает CSV-файл arijit_singh_new_update.csv, в LibreOffice это выглядит:

enter image description here

...