成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python爬蟲實戰:抓取并保存百度云資源

開發 后端
首先你得有一個百度云盤的賬號,然后登錄,用瀏覽器(這里用火狐瀏覽器做示范)打開一個分享鏈接。F12打開控制臺進行抓包。手動進行轉存操作:全選文件->保存到網盤->選擇路徑->確定。

[[213939]]

尋找并分析百度云的轉存api

首先你得有一個百度云盤的賬號,然后登錄,用瀏覽器(這里用火狐瀏覽器做示范)打開一個分享鏈接。F12打開控制臺進行抓包。手動進行轉存操作:全選文件->保存到網盤->選擇路徑->確定。點擊【確定】前建議先清空一下抓包記錄,這樣可以精確定位到轉存的api,這就是我們中學時學到的【控制變量法】2333。

可以看到上圖中抓到了一個帶有 “transfer” 單詞的 post 請求,這就是我們要找的轉存(transfer)api 。接下來很關鍵,就是分析它的請求頭和請求參數,以便用代碼模擬。

點擊它,再點擊右邊的【Cookies】就可以看到請求頭里的 cookie 情況。

cookie分析

因為轉存是登錄后的操作,所以需要模擬登錄狀態,將與登錄有關的 cookie 設置在請求頭里。我們繼續使用【控制變量法】,先將瀏覽器里關于百度的 cookie 全部刪除(在右上角的設置里面,點擊【隱私】,移除cookies。具體做法自己百度吧。)

然后登錄,右上角進入瀏覽器設置->隱私->移除cookie,搜索 "bai" 觀察 cookie 。這是所有跟百度相關的 cookie ,一個個刪除,刪一個刷新一次百度的頁面,直到刪除了 BDUSS ,刷新后登錄退出了,所以得出結論,它就是與登錄狀態有關的 cookie 。

同理,刪除掉 STOKEN 后,進行轉存操作會提示重新登錄。所以,這兩個就是轉存操作所必須帶上的 cookie 。

弄清楚了 cookie 的情況,可以像下面這樣構造請求頭。

除了上面說到的兩個 cookie ,其他的請求頭參數可以參照手動轉存時抓包的請求頭。這兩個 cookie 預留出來做參數的原因是 cookie 都是有生存周期的,過期了需要更新,不同的賬號登錄也有不同的 cookie 。

參數分析

接下來分析參數,點擊【Cookies】右邊的【Params】查看參數情況。如下:

上面的query string(也就是?后跟的參數)里,除了框起來的shareid、from、bdstoken需要我們填寫以外,其他的都可以不變,模擬請求的時候直接抄下來。

前兩個與分享的資源有關,bdstoken與登錄的賬號有關。下面的form data里的兩個參數分別是資源在分享用戶的網盤的所在目錄和剛剛我們點擊保存指定的目錄。

所以,需要我們另外填寫的參數為:shareid、from、bdstoken、filelist 和 path,bdstoken 可以手動轉存抓包找到,path 根據你的需要自己定義,前提是你的網盤里有這個路徑。其他三個需要從分享鏈接里爬取,這個將在后面的【爬取shareid、from、filelist,發送請求轉存到網盤】部分中進行講解。

搞清楚了參數的問題,可以像下面這樣構造轉存請求的 url 。

爬取shareid、from、filelist,發送請求轉存到網盤

以上面這個資源鏈接為例(隨時可能被河蟹,但是沒關系,其他鏈接的結構也是一樣的),我們先用瀏覽器手動訪問,F12 打開控制臺先分析一下源碼,看看我們要的資源信息在什么地方。控制臺有搜索功能,直接搜 “shareid”。

定位到4個shareid,前三個與該資源無關,是其他分享資源,***一個定位到該 html 文件的***一個標簽塊里。雙擊后可以看到格式化后的 js 代碼,可以發現我們要的信息全都在里邊。如下節選:

可以看到這兩行

yunData.PATH 只指向了一個路徑信息,完整的 filelist 可以從 yunData.FILEINFO 里提取,它是一個 json ,list 里的信息是Unicode編碼的,所以在控制臺看不到中文,用Python代碼訪問并獲取輸出一下就可以了。

直接用request請求會收獲 404 錯誤,可能是需要構造請求頭參數,不能直接請求,這里博主為了節省時間,直接用selenium的webdriver來get了兩次,就收到了返回信息。***次get沒有任何 cookie ,但是baidu 會給你返回一個BAIDUID ,在第二次 get 就可以正常訪問了。

yunData.FILEINFO 結構如下,你可以將它復制粘貼到json.cn里,可以看得更清晰。

清楚了這三個參數的位置,我們就可以用正則表達式進行提取了。代碼如下:

 

爬取到了這三個參數,就可以調用之前的 transfer 方法進行轉存了。 

責任編輯:龐桂玉 來源: Python中文社區
相關推薦

2014-07-25 17:12:39

數據庫WOT2014MongoDB

2016-10-13 15:19:34

百度

2012-05-28 22:51:53

百度

2017-02-05 10:43:39

Python編寫多線程

2012-07-02 09:41:29

百度云計算平臺

2024-05-20 07:52:06

冷啟動策略推薦算法推薦系統

2013-07-01 16:36:26

百度云推送免費云推送移動開發

2013-07-16 15:05:03

云推送極光推送

2012-10-19 09:47:30

百度云百度音樂云計算

2013-06-27 10:23:30

百度云百度開放云

2017-04-28 17:44:45

百度

2015-07-29 16:49:47

百度

2018-09-06 18:37:45

百度云

2021-09-03 09:26:15

Python爬蟲百度百科

2012-03-23 12:12:37

百度開發者大會

2013-10-12 10:25:20

百度云 Cooliris

2017-09-27 15:03:00

百度云云計算加速

2013-07-01 17:21:21

百度云推送免費云推送移動開發

2013-08-22 17:08:50

2021-02-17 09:23:31

Python百度搜索
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产中文区二幕区2012 | 国产精品视频免费播放 | 91社影院在线观看 | 成av在线| 亚洲精品免费视频 | 天天操天天射综合 | 成人黄在线观看 | 欧美国产日本一区 | 在线观看电影av | 欧美阿v | 欧美日韩在线一区二区三区 | 亚洲一区不卡 | 国产一区二区三区在线 | 日韩福利 | 日日天天 | 91大神新作在线观看 | 亚洲人一区 | 99久久精品国产一区二区三区 | 久久精品在线播放 | 午夜影院在线播放 | 蜜桃视频在线观看免费视频网站www | 色婷婷综合久久久中字幕精品久久 | 本地毛片 | 中文天堂在线一区 | 亚洲高清网 | 五月婷六月丁香 | 国产精品一二区 | 国产亚洲精品久久午夜玫瑰园 | 黄色在线观看网站 | 久久久久久久电影 | 久久亚洲一区二区三区四区 | 成人三级在线观看 | 日日夜夜精品视频 | 爱爱视频在线观看 | 日韩中文在线观看 | 国产乱精品一区二区三区 | 久久91av| 亚洲美女一区 | 九九九久久国产免费 | 美国一级片在线观看 | 99精品国自产在线观看 |