成功爬網易雲的關鍵點在於獲取網易雲**的框架原始碼,開啟網易雲**然後右鍵檢視原始碼 發現歌手的id原始碼中找不到 ,觀察原始碼會發現有標籤iframe即網頁巢狀網頁,開啟開發者工具,輸入歌手id能夠定位到歌手的id位置,右擊檢視框架原始碼 會發現很多東**在框架原始碼裡,尋找框架原始碼的鏈結規律,依此遍歷。
原始碼如下:
> import requests
import csv
from bs4 import beautifulsoup
csvfile = open('f:/music/final_id.csv', 'w', encoding='utf-8-sig')
writer = csv.writer(csvfile)
def get_id(url):
head =
writer.writerow(('id', 'name'))
res = requests.get(url, headers=head)
soup = beautifulsoup(res.text, 'lxml')
a = soup.find_all('a', attrs=)
for tag in a:
id = tag['href'].replace('/artist?id=', '')
name = tag.string
writer.writerow([id, name])
def main():
list_id = [1001, 1002, 1003, 2001, 2002, 2003, 6001, 6002, 6003, 7001, 7002, 7003, 4001, 4002, 4003]
list_ins = [-1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 0]
for id in list_id:
for ins in list_ins:
url = ''+str(id)+'&initial='+str(ins)
get_id(url)
if __name__=="__main__":
main()
網易雲歌手爬取
需求 獲取每乙個大分類下的每個子分類下的所有歌手名 思路 1.獲取大分類的url,並請求 2.獲取小分類的url,並請求 3.獲取歌手名 import requests from lxml import etree 定義請求函式 defget requests url response reques...
爬網易雲歌單
學習爬蟲嘛,就是批量獲取目標 上內容。首先需要知道目標 的url,尤其是需要獲取目標 裡面子鏈結中的內容時,需要先批量獲取所有子鏈結的url。其次是從大量的資訊中提取並整理自己想要的資訊。是不是很簡單 一般用beautiful soup 庫,專門用來提取網頁的資料,用作爬蟲 很好用。beautifu...
爬取網易雲歌單
偶爾在微博上看到,要是歌單裡誰的歌超過30首,那肯定是真愛吧。我看了連忙開啟網易雲 我的歌單,結果1000多首歌。這讓我自己數得數到猴年馬月呀.於是萌生出了寫一段小爬蟲來統計的想法。剛開始想直接解析網頁元素,後發現很麻煩,很多資訊不能一次抓取到,於是找到網頁請求的介面,結果介面有加密引數,看了一下j...