1、我們的目標是獲取微博某博主的全部圖片、視頻 2、拿到網址後 我們先觀察 打開F12 隨著下滑我們發現載入出來了一個叫mymblog的東西,展開響應發現需要的東西就在裡面 3、重點來了!!! 通過觀察發現第二頁比第一頁多了參數since_id 而第二頁的since_id參數剛好在上一頁中能獲取到, ...
1、我們的目標是獲取微博某博主的全部圖片、視頻
2、拿到網址後 我們先觀察 打開F12 隨著下滑我們發現載入出來了一個叫mymblog的東西,展開響應發現需要的東西就在裡面
3、重點來了!!!
通過觀察發現第二頁比第一頁多了參數since_id 而第二頁的since_id參數剛好在上一頁中能獲取到,往下翻頁同理 第二頁帶著第三頁需要的參數
4、因為是get請求 接下來就是設置params對下麵網址進行請求然後提取bloghttps://weibo.com/ajax/statuses/mymblog
5、不會翻頁的我還發現了個簡單的方法 不用帶since_id參數,只需要給page來個迴圈也可實現迴圈 具體如下:
5.1、把網址設置成這樣,
https://weibo.com/ajax/statuses/mymblog?uid=2793306070&page=2&feature=0&since_id=
5.2、去掉params 具體為啥不帶參數也能出來 我也不清楚 反正是發現這麼設置url可以實現翻頁
6、最後看看出來結果(部分照片屬於會員可見,但是依然可以拿到高清原圖。未顯示出來的是因為0擦邊嚴重被微博封了)
7、具體代碼如下
1 import requests 2 3 headres = { 4 '你的': '微博cookie', 5 'referer': 'https://weibo.com/u/2793306070', 6 '你的': 'UA', 7 'x-requested-with': 'XMLHttpRequest', 8 'x-xsrf-token': '1_g5J4kMvprJh8xD1YgaHWmv' 9 } 10 11 shipindizhi = './陳佩琪個人微博視頻/' 12 tupiandizhi = './陳佩琪個人微博照片/' 13 n = 1 14 x = 1 15 for g in range(1, 11): 16 url = f'https://weibo.com/ajax/statuses/mymblog?uid=2793306070&page={g}&feature=0&since_id=' 17 18 rsp_fanye = requests.get(url=url, headers=headres).json() 19 since_id = rsp_fanye['data']['since_id'] 20 print(since_id) 21 neirong = rsp_fanye['data']['list'] 22 # 獲得圖片(獲得文本,有圖片獲得圖片) 23 for i in neirong: 24 text = i['text_raw'].replace('\n','') 25 if 'pic_infos' in i: 26 tupian = i['pic_infos'] 27 # print(tupian) 28 for j in tupian: 29 # print(j) 30 tupian_url = i['pic_infos'][j]['mw2000'].get('url') 31 # print(tupian_url) 32 pinjie = tupiandizhi + 'tupian_%s' % x + '.' + '.jpg' 33 f = open(pinjie, mode='wb') 34 f.write(requests.get(url=tupian_url).content) 35 x += 1 36 print(pinjie+'圖片保存成功!!!') 37 38 # 獲得視頻 39 for j in neirong: 40 if 'page_info' in j: 41 shiping = j['page_info'] 42 if 'media_info' in shiping: 43 media_info = shiping['media_info']['mp4_720p_mp4'] 44 # print(media_info) 45 pinjie = shipindizhi + 'shiping_%s' % n + '.' + '.mp4' 46 f = open(pinjie, mode='wb') 47 f.write(requests.get(url=media_info).content) 48 n += 1 49 print(pinjie+'圖片保存成功!!!')