<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Scrapy爬取網易云音樂和評論(一、思路分析)

      教程系列鏈接目錄:

      1、Scrapy爬取網易云音樂和評論(一、思路分析)
      2、Scrapy爬取網易云音樂和評論(二、Scrapy框架每個模塊的作用)
      3、Scrapy爬取網易云音樂和評論(三、爬取歌手)
      4、Scrapy爬取網易云音樂和評論(四、關于API)
      5、Scrapy爬取網易云音樂和評論(五、評論)

      項目GitHub地址:https://github.com/sujiujiu/WYYScrapy

      很尷尬,csdn不允許發爬取類的文章然后都屏蔽了,然后重新發到博客園這邊了。

      前提:

      scrapy這個框架很多人用過,網上教程也很多,但大多就是爬爬小說這種比較簡單且有規律的,網易云音樂也有很多人寫過,也有API,不過大多是爬取了熱門歌曲,或是從歌單下手,但是考慮到歌單會有很多重復的。當然,從歌手頁的話,如果有多個歌手合唱,那每個歌手頁也都會有這首歌,但他們的鏈接是一樣的,也是會有重復的,但是相對來說就比較少,所以就從歌手下手。

      在GitHub上也有很多優秀的例子,但沒有文檔,我這里寫一個整站的。
      項目GitHub地址:https://github.com/sujiujiu/WYYScrapy

      因為種種原因,我后來還是沒有用框架又寫了一遍。這一塊運行成功了,但是我沒有去關注數量就中斷了,就只能拿出來當教程吧。

      • 開發環境:WIN7+Anaconda+py2.7+scrapy
      • 數據庫:MongoDB
      • 文章的順序:先分析思路,再分析scrapy框架每個模塊的作用,最后寫代碼和分析API,只有5篇。

      之前有小伙伴問我為什么在已經出到3.x后期了我還要用2.7,其實是我當時學的時候在折騰2.7,就是懶。而且當時scrapy對py3很不友好,文檔也很有限,當然是后來才知道Anaconda這個好東西的。Anaconda2和3都有了,3能不能裝scrapy我不知道,還沒試過。如果你不想用2.7,可以先嘗試下Anaconda3裝一裝scrapy看看能不能裝成功,是哪個版本的。

      一、我們先爬歌手,有兩種方法:

      方法一:遍歷id

      第一種是遍歷,id數大概十一二萬的樣子,大多id是相隔不遠的。

      • 優點:遍歷比較方便,比較全。有個別歌手有主頁,但是沒有申請音樂人,只能通過自己搜索訪問id,用這種方式比較完整。
      • 缺點:但是這種方式會有很多404,就需要你去處理。

      但我最開始用的是下面這種,我們也拿這個來分析:

      方法二:從分類獲取所有入駐的歌手的id

      優缺點與方法一剛好相反。

      • 優點:不用去做404處理。
      • 缺點:獲取歌手不完全。分類里只有已經入駐的歌手,你仔細搜搜就會發現很多歌手的主頁只有一個收藏的標簽,卻沒有個人主頁的標簽。沒有個人主頁的都是沒有入駐、沒有簽約,或是歌是被別人上傳的,被歸類到該主頁下的。

      1、從這個頁面,爬取所有歌手的id:http://music.163.com/#/discover/artist

      這里要說一下,網易云的所有網址,要去掉中間那個#號才是真正的url,帶#的查看源代碼是獲取不到真正的信息的。所以正的url其實是:http://music.163.com/discover/artist

      我們看這個頁面左側欄:
      image.png

      2、因為當時我寫的時候,參考到這篇,https://github.com/runningRobin/music163/blob/master/music163/spiders/spider.py
      左欄里的id
      這個group_ids里的就是左側每個項對應所有的頁面了(不包括最上方的推薦歌手和入駐歌手,因為包含在其他里面了)

      3、我們按F12或右鍵檢查,如圖,每個對應的url是:http://music.163.com/discover/artist/cat?id=xxx:
      image.png

      4、然后我們再點進去:
      image.png

      url的id就是上面這個id了,而后面的initial是什么呢?initial是首字母的意思,你看下面我們選中的是A,然后它是65,是不是想到ASCII碼,在ASCII碼中A就是從65開始的,Z是90,后面以此類推,最后有個其他,是0,我們將它弄成一個列表:

      #  男女、國家分類id
      group_ids = (1001, 1002, 1003, 2001, 2002, 2003, 6001, 6002, 6003, 7001, 7002, 7003, 4001, 4002, 4003)
      # 歌手姓名首字母id
      initials = [i for i in range(65,91)] + [0]
      

      二、歌手頁

      1、點進來之后我們來到歌手頁,http://music.163.com/#/artist?id=6452 ,同樣,去掉#

      2、我們會發現下面有好幾個塊,
      image.png
      我們獲取的這個url對應的是熱門50首,如果你只需要熱門歌曲你可以獲取它所有鏈接:
      image.png
      這個代碼被我分為兩塊,第一塊是熱門50首的url,也只有url。

      而第二塊textarea里是json,是這些歌曲的完整的信息,我獲取的是json信息,只不過,這些信息通過lxml.etree或者BeautifulSoup用text的方式獲取下來會是字符串,我們需要用json將它格式化,但是極個別在爬取的過程中,死活獲取不到。

      3、上面那個是歌手的熱門歌曲,我們要獲取全站,就得從歌手的專輯下手,獲取專輯里所有的歌手才行。因為scrapy本身的束縛,其實說是全站,并不是那么方便,比如這四個板塊,我們只能選一個,一直往下,單曲或MV就得另寫。

      4、我們在專輯頁會發現,有些是有很多頁的,后來搜的時候發現了API,所以接下來的東西,我們就不通過頁面的方式了。

      API我是通過這個網站發現的:http://moonlib.com/606.html ,因為最開始我的目的是爬評論,來看到評論的API很多變了,我以為這些都變了,一開始還擱置了沒用,傻傻的去寫lxml,但是它的翻頁的序號是爬不到的,后來隨手測試了一下API,發現都有用。

      我們用到的是2到6(不包括5,沒用到歌單),第7條接口是MV的,不過不幸沒有發現像專輯一樣的列表頁信息,它只有單曲的MV的API。

      不過這里我們用不上,后面會專門分析API。

      image.png

      5、接下來就是每個專輯的所有歌曲還有專輯、歌手的一些信息,專輯下也有評論
      image.png

      6、最后就是歌曲頁了
      image.png

      好,思路就是這樣,接下來我們分析Scrapy這個框架。

      posted @ 2021-10-06 17:47  蘇酒酒  閱讀(844)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产中文三级全黄| 亚洲中文字幕无码爆乳| 广东省| 国产在线午夜不卡精品影院| 久人人爽人人爽人人片av| 国产欧美久久一区二区| 无码日韩做暖暖大全免费不卡| 91中文字幕一区在线| 国产亚洲精品中文字幕| 免费超爽大片黄| 亚洲熟女乱色综一区二区| 国产小受被做到哭咬床单GV| 亚洲中文无码永久免费| 亚洲熟妇精品一区二区| 亚洲男人第一无码av网站| 成人一区二区人妻不卡视频| 永久国产盗摄一区二区色欲| 无码人妻精品一区二区三区66| 国产欧美另类精品久久久 | 久久精品国产中文字幕| 免费人成在线观看网站| 国产精品亚洲二区在线看| 丰满少妇在线观看网站| 国产成人午夜精品永久免费| 青柠影院免费观看高清电视剧丁香| 汕尾市| 蜜桃成人无码区免费视频网站| 久久精品国产亚洲av麻| 亚洲国产成人综合熟女| 亚洲成a人片在线观看中文| 中文字幕日韩国产精品| 久久久久久久久毛片精品| 国产一区二区高清不卡| 国产极品美女高潮抽搐免费网站| 男女啪啪网站| 欧美日韩高清在线观看| 亚洲欧美日韩高清一区二区三区| 夜夜添狠狠添高潮出水| 爆乳女仆高潮在线观看| 日韩国产精品区一区二区| 亚洲第一香蕉视频啪啪爽|