1.背景
我最近準備把1985年-2019年的全國30m解析度土地利用資料按照地級市進行裁剪與歸納,這需要用到Geopandas對shp資料進行批量操作,在安裝Geopandas的python包時,遇到一系列模塊包版本在加利福尼亞大學爾灣分校python庫中下架的情況(這個網站幾乎囊括了python所有whl檔案,網址為:https://www.lfd.uci.edu/~gohlke/pythonlibs/ ) ,

加利福尼亞大學爾灣分校python庫示意圖
由此,我便產生了一個想法,下載所有的模塊包并做一個備份,
2.下載方法
2.1 找到模塊包的下載鏈接
首先這個網站不需要注冊,也不需要fq,因此不用考慮反爬機制和網路連接設定,
當你要在這個網站下載python包時,只需要點擊就可以下載,我猜想每個模塊包的下載鏈接藏在html檔案中的"li"標簽中,F12檢查要素,


可以看到li標簽中沒有下載鏈接,那下載鏈接應該是通過點擊動作,服務器才會回傳下載鏈接進行下載,理論上使用爬蟲模擬點擊獲取鏈接,也是可行的,
但,不采用爬蟲,還有更簡單的,

由此,我們獲取了一個下載鏈接,鏈接為:
https://download.lfd.uci.edu/pythonlibs/y2rycu7g/GDAL-3.3.1-pp37-pypy37_pp73-win_amd64.whl, 將此鏈接放入瀏覽器訪問,可以下載模塊包,
2.2 確定下載思路
觀察到下載鏈接在最后一個斜杠后的為模塊包的名字,比如:GDAL-3.3.1-pp37-pypy37_pp73-win_amd64.whl,
那我們是不是可以用模塊包的名字,直接復制到“https://download.lfd.uci.edu/pythonlibs/y2rycu7g/”之后,于是我又試了幾個包,該方案是可行的,
因此,所有python包的下載鏈接為:固定的格式+模塊名,
2.2 實操
(1)ctrl+A、ctrl+V、ctrl+C,復制網頁,粘貼到notepad++:

(2)資料清洗,只保存python包的名字,這里面資料清洗,可以使用notepad++自帶的正則運算式篩選、標記行、洗掉行,最后檔案只包含python包名字:

(3)添加鏈接,就完成了,其中python27、python33、python34、python35、python36需要額外添加一個斜桿內容,代表python版本:

2.2 下載
我剛開始打算用python,開多執行緒下載,后面一想,有下載鏈接了,用迅雷不好嗎?資料鏈接通過迅雷下,
3.下載結果
以下是結果,共計8000個模塊包,24G記憶體大小,

并且按照python版本進行了歸類:

4.總結
1.全文思路:通過下載鏈接,獲取鏈接生成方式;然后利用notepad++進行資料清洗,制作鏈接;最后通過迅雷下載,
2.對python包進行了備份,以后需要老版本的包,可以在百度云中下載,需要資源的,請找下面的二維碼,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/294230.html
標籤:python
