Xpath使用
import requests from lxml import etree # xpath def get_baidu_music(): url = "http://music.taihe.com/top/dayhot" response = requests.get(url) html = response.content.decode("utf-8") result = etree.HTML(html) songlist = result.xpath('//div[@class="top-list-item"]//ul') res = [] for i in range(len(songlist)): href = songlist[i].xpath('li/div/span[@class="song-title "]/a[position()=1]/@href') name = songlist[i].xpath('li/div/span[@class="song-title "]/a/text()') singer = songlist[i].xpath('li/div//span[@class="author_list"]/@title') urls = [] for url in href: url = "http://music.taihe.com"+ url urls.append(url) res.append(zip(name,singer,urls)) return res def save(res): with open("baidu_music.txt","w",encoding="utf-8") as f: for zip_music in res: for music in zip_music: f.write(str(music)+"\n") res = get_baidu_music() save(res)