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)

  

posted @ 2018-09-02 23:06  whz_it  阅读(100)  评论(0编辑  收藏  举报