Hi~ I am a crazy beginner in python,I recently want to crawl the singer names together with song names from my own favorite list by selenium (find_elements_by_selector)
Website:https://www.xiami.com/favorite/88955424
however I try ,it failed~ the return select list is empty ,I don’t know why
The music website is base in ajax
Below is what the empty select look like in the console, I am so sad
[]
[]
[]
situation(song amount)(singer amount)(album amount): 0 0 0
And this is my original script
from selenium import webdriver
import mysql.connector
import time
class xiami():
def __init__(self):
self.url='https://www.xiami.com/favorite/88955424'
def turn_on_url(self):
self.browser = webdriver.Chrome()
self.browser.get(self.url)
self.browser.maximize_window()
self.browser.implicitly_wait(8)
def get_page_data(self):#get infos of singers and songs and albums
self.song_names=self.browser.find_elements_by_css_selector('div[class="song-name em"] a[data-spm-anchor-id="a2oj1.12028340.0.0"]')#song name
self.singers=self.browser.find_elements_by_css_selector('div[class="singers"] a[data-spm-anchor-id="a2oj1.12028340.0.0"]')
self.albums=self.browser.find_elements_by_css_selector('div[class="album"] a[data-spm-anchor-id="a2oj1.12028340.0.0"]')
print(self.song_names)
print(self.singers)
print(self.albums)
print('situation(song amount)(singer amount)(album amount):',len(self.song_names),len(self.singers),len(self.albums))
if __name__=='__main__':
xiami=xiami()
xiami.turn_on_url()
xiami.get_page_data()