Scrapy爬取網(wǎng)易云音樂和評(píng)論(四顿苇、關(guān)于API)

目錄:

1峭咒、Scrapy爬取網(wǎng)易云音樂和評(píng)論(一、思路分析)
2纪岁、Scrapy爬取網(wǎng)易云音樂和評(píng)論(二凑队、Scrapy框架每個(gè)模塊的作用)
3、Scrapy爬取網(wǎng)易云音樂和評(píng)論(三幔翰、爬取歌手)
4漩氨、Scrapy爬取網(wǎng)易云音樂和評(píng)論(四、關(guān)于API)
5遗增、Scrapy爬取網(wǎng)易云音樂和評(píng)論(五叫惊、評(píng)論)

前面有提到,API的參考鏈接贡定,另外再放上幾個(gè)赋访,

1、http://moonlib.com/606.html(我用的這個(gè))
2缓待、http://blog.csdn.net/qujunjie/article/details/34422379
3蚓耽、https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=neteasecloudmusicapi(這個(gè)比較官方,我也不知道是不是官方旋炒,但是很全很全很全)

我們爬取的順序是:

1秋泳、歌手專輯
2浪感、專輯信息(不包括評(píng)論)
3、歌曲信息(不包括評(píng)論)
4、歌詞
5帆阳、專輯和歌曲評(píng)論(這個(gè)另起一章寫)

我們拿一個(gè)來講解什燕,其他的類似:
比如闹丐,歌手專輯:

http://music.163.com/api/artist/albums/166009?id=166009&offset=0&total=true&limit=12
  • offset:偏移量烘嘱,它其實(shí)算是比如歌手的專輯頁每頁有12首,第一頁的offset就是0(一般是0開頭)尚粘,然后第二頁offset就是12择卦,第一頁0~11剛好12位數(shù),所以offset從12開頭郎嫁,以此類推秉继。可以算作是second_offset = limit*(first_offset+1)
  • limit:一頁有多少泽铛,這個(gè)可以改尚辑,但是不同的網(wǎng)站有不同的規(guī)律,比如豆瓣盔腔,它這個(gè)limit的上限跟當(dāng)頁顯示給你看的不同杠茬,比如一頁默認(rèn)給你顯示20條數(shù)據(jù)月褥,但是你給它改成50也會(huì)給你返回50條。但是網(wǎng)易云不一樣澈蝙,它顯示是12條吓坚,它的limit可以往下,但不能往上灯荧,往上它返回也是12條,它這是固定的盐杂,那超過怎么辦呢逗载?假設(shè)36條,那么3頁對(duì)吧链烈,根據(jù)前面的offset厉斟,不停的改offset,這數(shù)字一看就有規(guī)律强衡,很容易就能想到用遍歷擦秽,如圖,這是我寫的一個(gè)歌手專輯信息的函數(shù):
image.png

我的那個(gè)get_req()函數(shù)就是對(duì)requests.get做了些處理漩勤,中途肯定會(huì)遇到各種各樣的狀態(tài)碼對(duì)吧感挥,這個(gè)你們自己去思考。

這里我沒有用response越败,因?yàn)椴簧婕暗揭粋€(gè)完整的傳遞鏈触幼,它只是要存進(jìn)數(shù)據(jù)庫的某一個(gè)字段,如圖究飞,這個(gè)才是我要進(jìn)行存儲(chǔ)的的函數(shù)置谦,其中調(diào)用了get_artist_album_info()這個(gè)函數(shù),它只是作為一個(gè)字段存進(jìn)了item亿傅。

其中調(diào)用了get_artist_album_info()這個(gè)函數(shù)媒峡,它只是作為一個(gè)字段存進(jìn)了item。

然后回到get_artist_album_info()函數(shù)葵擎,這里的建議就是谅阿,將固定的不變,會(huì)變的用params這個(gè)參數(shù)坪蚁,requests.get它后面可以傳各種參數(shù)奔穿,包括params,以及前面的headers敏晤。

這個(gè)params里有四個(gè)參數(shù):

  • id:歌手的id贱田,事實(shí)上,有它嘴脾,albums_url里那個(gè)%s占位的地方可以不要男摧,但是因?yàn)樽铋_始參照的那個(gè)網(wǎng)站有蔬墩,也是測(cè)試成功就沒管了。(上面我提供的鏈接1和2的區(qū)別在這里耗拓,用哪個(gè)都行)
  • offset:這個(gè)首先看到我的page_count拇颅,就是指頁數(shù),比如3頁乔询,但其實(shí)網(wǎng)易云這個(gè)抓不到有多少頁樟插,其實(shí)應(yīng)該是從第一頁的json返回的專輯信息得到的總專輯數(shù)量有多少,然后進(jìn)行處理的竿刁。但是因?yàn)閷戇@個(gè)的時(shí)候我直接爬的頁數(shù)黄锤,但是當(dāng)時(shí)沒測(cè)試,所以建議改成這樣就可以了:
# album_count是一個(gè)歌手所有專輯的總數(shù)
# 獲得的方法可以先爬第一頁的json數(shù)據(jù)食拜,或者別的你們自己找
for offset in range(0,album_count,12):
    params = {
        'id':singer_id,
        'offset':offset,
        'total':'true',
        'limit':12
    }
  • total:這個(gè)參數(shù)的意義除了在評(píng)論有用鸵熟,這里不確定到底有什么用,最開始我以為负甸,改成TRUE能不需要offset流强,會(huì)返回所有數(shù)據(jù),后來發(fā)現(xiàn)沒什么區(qū)別呻待,最大上限就是一頁12打月,放著也沒關(guān)系。
  • limit:這里就是12

API

以此類推带污,其他到底都是這樣了僵控,這里把http://moonlib.com/606.html的API集中寫一下,method都是GET:
1鱼冀、歌手專輯:

# 歌手專輯:
# 三種寫法报破,隨意,推薦第三種千绪,后面都是
1充易、http://music.163.com/api/artist/albums/[artist_id]/
2、http://music.163.com/api/artist/albums/166009/id=166009&offset=0&total=true&limit=5
3荸型、url='http://music.163.com/api/artist/albums/166009'
params = {....}

2盹靴、專輯里的歌曲列表

# 專輯里的歌曲列表
http://music.163.com/api/album/2457012?ext=true&id=2457012&offset=0&total=true&limit=10

3、歌曲信息

# 歌曲信息
# 這里說明一下瑞妇,%5B和%5D就是一對(duì)中括號(hào)[]稿静,最好改成[],像歌手專輯里第一種寫法那個(gè)一樣辕狰,因?yàn)?5B那種寫法還要處理改备,且麻煩。
http://music.163.com/api/song/detail/?id=28377211&ids=%5B28377211%5D

4蔓倍、歌詞信息

# 這個(gè)跟其他都不一樣悬钳,后面的lv盐捷、kv、tv是固定的默勾,只要改id即可碉渡。
http://music.163.com/api/song/lyric?os=pc&id=93920&lv=-1&kv=-1&tv=-1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市母剥,隨后出現(xiàn)的幾起案子滞诺,更是在濱河造成了極大的恐慌,老刑警劉巖环疼,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铭段,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡秦爆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門憔披,熙熙樓的掌柜王于貴愁眉苦臉地迎上來等限,“玉大人,你說我怎么就攤上這事芬膝⊥牛” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵锰霜,是天一觀的道長筹误。 經(jīng)常有香客問我,道長癣缅,這世上最難降的妖魔是什么厨剪? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮友存,結(jié)果婚禮上祷膳,老公的妹妹穿的比我還像新娘。我一直安慰自己屡立,他們只是感情好直晨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著膨俐,像睡著了一般勇皇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上焚刺,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天敛摘,我揣著相機(jī)與錄音,去河邊找鬼檩坚。 笑死着撩,一個(gè)胖子當(dāng)著我的面吹牛诅福,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拖叙,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼氓润,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了薯鳍?” 一聲冷哼從身側(cè)響起咖气,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挖滤,沒想到半個(gè)月后崩溪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡斩松,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年伶唯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惧盹。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乳幸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钧椰,到底是詐尸還是另有隱情粹断,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布嫡霞,位于F島的核電站瓶埋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏诊沪。R本人自食惡果不足惜养筒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望娄徊。 院中可真熱鬧闽颇,春花似錦、人聲如沸寄锐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽橄仆。三九已至剩膘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盆顾,已是汗流浹背怠褐。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留您宪,地道東北人奈懒。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓奠涌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親磷杏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子溜畅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容