爬取網(wǎng)易云音樂所有歌單

網(wǎng)易云音樂歌單首頁
歌單第二頁鏈接
歌單第三頁鏈接

可以看出只有最后的數(shù)字在變化,所以進行url的構造,然后開始爬取

import csv
from lxml import etree
import requests
from multiprocessing.dummy import Pool
import time
headers = {
'Referer':'http://music.163.com/',
'Host':'music.163.com',
# 'User-Agent':'Mozilla/5.0 (X11: Linux *86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.3.0',
    'User-Agent': 'Mozilla/5.0 (X11: Linux *86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.3.0',

    'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
}
wangyi='http://music.163.com'
base_url='http://music.163.com/discover/playlist/?order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset={}'
urlList=[]      #保存構造出的鏈接
def totalPage():
    for i in range(0,1300,35):
        url=base_url.format(i)
        urlList.append(url)

def getData(url):
    r=requests.get(url,headers=headers)
    html=etree.HTML(r.text)
    MFlist=html.xpath("http://p[@class='dec']/a/text()")
    MFurl=html.xpath("http://p[@class='dec']/a/@href")
    LisNum=html.xpath("http://span[@class='nb']/text()")
    for i in range(len(MFlist)):
        write.writerow([MFlist[i],wangyi+MFurl[i],LisNum[i]])
    time.sleep(3)   #延時,防止IP被封
f=open('Allmusicform.csv','a+',newline='',encoding='utf-8')
write=csv.writer(f)
p=Pool(4)
totalPage()
p.map(getData,urlList)
p.close()


分別爬取了歌單名稱、url、播放次數(shù)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 14,278評論 0 15
  • 那時 天也不藍 陽光也不暖 寒風凜冽 河水冰結 花也沒開 你也沒來 那時 你還沒把你種到我心里 那時 我還沒有愛上你
    柴子恒閱讀 142評論 0 1
  • “仁者愛人,為仁由己。唯仁者能好人,能惡人。克己復禮為仁,一日克己復禮,天下歸仁焉。”做人的禮節(jié)很重要,讀書...
    益達不好吃閱讀 420評論 0 0
  • 上交打路錢十年今年打嗎/?
    2a52090c8b3d閱讀 136評論 0 0

友情鏈接更多精彩內容