通過瀏覽器的檢查元素
要想爬取這些資料,就必須在使用requests庫時設定好請求的頭部(headers)特別是cookie。
接下來開始分析:
首先是找到網易雲**歌手網頁:
在左側我們可以看到歌手的分類,每個分類都對應乙個url的id引數,同一類歌手又通過歌手名字的首字母進行排序,對應url中的initial引數。這裡以華語歌手,a打頭的網頁的url為例。
因此我們只需要改變**中的id和initial引數的值便可以將網易雲**上所有的歌手資訊爬取下來。
1 ls1 = [1001, 1002, 1003, 2001, 2002, 2003, 6001, 6002, 6003, 7001, 7002, 7003, 4001, 4002, 4003] #這裡我們建立兩個列表來儲存id和initial的值,從而構建爬取全部歌手資訊的網頁url。id的值
2 ls2 = [-1, 0, 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] #
initial的值
3for i in
ls1:
4for j in
ls2:
5 url = '
' + str(i) + '
&initial=
' + str(j)
接著我們開始設定請求的頭(即headers的值),開啟瀏覽器的開發者工具欄(滑鼠右鍵點選檢查),點選network,再點選doc,找到原始請求返回的檔案(即**對應的檔案),點選headers,裡面有request headers,把裡面的值全部設定為請求的頭部的值。
一定不能漏了cookie的值。
1view codeimport
requests
2from bs4 import
beautifulsoup
3import
csv456
#建構函式獲取歌手資訊
7def
get_artists(url):
8 headers=
24 r = requests.get(url, headers=headers)
25 soup = beautifulsoup(r.text, '
html5lib')
26for artist in soup.find_all('
a', attrs=):
27 artist_name =artist.string
28 artist_id = artist['
href
'].replace('
/artist?id=
', ''
).strip()
29try:30
writer.writerow((artist_id, artist_name))
31except
exception as msg:
32print
(msg)
3334
35 ls1 = [1001, 1002, 1003, 2001, 2002, 2003, 6001, 6002, 6003, 7001, 7002, 7003, 4001, 4002, 4003] #
id的值
36 ls2 = [-1, 0, 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] #
initial的值
37 csvfile = open('
f://歌手資訊.csv
', '
a', encoding='
utf-8
') #
檔案儲存的位置
38 writer =csv.writer(csvfile)
39 writer.writerow(('
artist_id
', '
artist_name'))
40for i in
ls1:
41for j in
ls2:
42 url = '
' + str(i) + '
&initial=
' +str(j)
43 get_artists(url)
至此利用python爬取網易雲**全部歌手資訊的爬蟲就完成了,這裡我把資訊儲存成了csv 檔案。來看一下結果:
爬蟲綜合大作業
一 爬蟲物件 豆瓣電影裡面喜劇片的排行榜 二 如下 設定了多個user agent,模擬成真實的瀏覽器去提取內容 抓取電影的資訊 獲取索引頁 def get index page url try headers response requests.get url,headers headers re...
爬蟲綜合大作業
作業要求來自 滿天星辰的夜晚,他們相遇了 夏天的時候,她慢慢的接近他,關心他,為他付出一切 秋天的時候,兩個人終於如願的在一起,分享一切快樂的時光但終究是快樂時光短暫,因為杰倫必須出國深造,兩人面臨了要分隔兩地的狀況,分隔兩地的愛情總是難以維繫長久,在冬天他們選擇分手。從前從前 那帶著痛徹心扉的氣味...
爬蟲大作業
1 選乙個自己感興趣的主題。2 用python 編寫爬蟲程式,從網路上爬取相關主題的資料。3 對爬了的資料進行文字分析,生成詞云。4 對文字分析結果進行解釋說明。5 寫一篇完整的部落格,描述上述實現過程 遇到的問題及解決辦法 資料分析思想及結論。6 最後提交爬取的全部資料 爬蟲及資料分析源 impo...