几行代码,网盘链接提头来见!
文 |?閑歡
來源:Python 技術「ID: pythonall」
背景
晚上,女朋友下班回來,我邀請她下樓去散步,她一副愁眉苦臉的樣子,說今晚要加班。
仔細詢問之下得知:女朋友今天接到上司一個任務,領導丟給她一個文件,里面密密麻麻滿是百度網盤鏈接和提取碼,需要她今天結束之前把網盤里的文件提取出來。
聽到她說要熬夜肝工作那種委屈的模樣,我是真的有點心疼。于是本能地問她,現在工作中最影響效率的是哪個環節,我來幫她一起肝。她告訴我,看這個百度網盤的鏈接看得眼都花了,要復制鏈接,以及復制提取碼是個技術活,因為有其他文字干擾,經常復制不準。
鏈接類似下面這樣的:
鏈接: https://pan.baidu.com/s/1ctcXiZymWst2NC_JPDkr4Q 提取碼: j1ub 復制這段內容后打開百度網盤手機App,操作更方便哦
想必大家看到這個鏈接,都不會陌生。不止百度網盤,還有好多網盤都是這樣的。
既然這樣,那我當然要幫她解決這個棘手的問題。
思路
其實她的需求很簡單,把網盤鏈接和對應提取碼從這個分享文字中提取出來。
解決這個需求只需要用正則表達式匹配分享文字中的 URL 和提取碼就行了。
實現解析
代碼很簡單,直接上:
url_pattern?=?'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+' code_pattern?=?'(?<=提取碼:?)[0-9a-z]{4}' url_regex?=?re.compile(url_pattern) code_regex?=?re.compile(code_pattern)接下來,測試一下:
str?=?'鏈接:?https://pan.baidu.com/s/1ctcXiZymWst2NC_JPDkr4Q?提取碼:?j1ub?復制這段內容后打開百度網盤手機App,操作更方便哦' print(url_regex.findall(str)[0]) print(code_regex.findall(str)[0])可以在控制臺上看到打印輸出兩行,第一行是鏈接,第二行是提取碼:
https://pan.baidu.com/s/1ctcXiZymWst2NC_JPDkr4Q j1ub
幾行代碼一敲,事情就這么搞定了!
等等,這太程序員思維了!
現在還只是個程序,難道要她把一段段文字復制到我的程序里面再運行?這不是更麻煩嗎???
就這?當然不行,我還是有點產品素養的!
當然要給個界面給她。我搜索了下我的知識庫,準備用 tkinter 來畫一個簡單的界面給她使用。
其實現如下:
def?draw_window(self):self.init_window?=?Tk()??#?實例化出一個父窗口self.init_window.title("百度網盤提取鏈接工具_v1.0")??#?窗口名self.init_window.geometry('800x300+10+10')#?源信息self.init_data_label?=?Label(self.init_window,?text="復制的提取信息")self.init_data_label.grid(row=0,?column=0)self.init_data_text?=?Text(self.init_window,?width=100,?height=5,?borderwidth=1,?relief="solid")??#?原始數據錄入框self.init_data_text.grid(row=1,?column=0,?columnspan=10)#?按鈕self.str_trans_button?=?Button(self.init_window,?text="提取",?width=10,?height=2,?bg="blue",command=self.extractData)??#?調用內部方法??加()為直接調用self.str_trans_button.grid(row=2,?column=2)#?鏈接self.link_data_label?=?Label(self.init_window,?width=10,?text="鏈接")self.link_data_label.grid(row=3,?column=0,?columnspan=1)self.link_data_text?=?Text(self.init_window,?width=60,?height=2,?borderwidth=1,?relief="solid")self.link_data_text.grid(row=3,?column=1,?columnspan=6)#?提取碼self.code_data_label?=?Label(self.init_window,?width=10,?text="提取碼")self.code_data_label.grid(row=3,?column=7,?columnspan=1)self.code_data_text?=?Text(self.init_window,?width=20,?height=2,?borderwidth=1,?relief="solid")self.code_data_text.grid(row=3,?column=8,?columnspan=2)上面就是畫一個界面的代碼,運行之后長這樣:
界面丑是丑了點,但是時間緊,任務重,先用起來再說。
和解析代碼合體之后,正常的運行情況應該是這樣的:
運行當然,還可以進一步改造,比如獲取到網盤鏈接和提取碼之后,直接使用 selenium 來自動控制瀏覽器打開相應的百度網盤頁面,女朋友直接在頁面選擇文件點擊下載即可。
但是今晚時間不夠了,先讓她用著。
總結
處理一個簡單的需求,咱們就用到了正則、畫界面,還可以使用瀏覽器模擬操作的 selenium ,可見平時的知識積累多重要。小伙伴們平時還是要有意識積累一些實用的技術,當需求來時方可信手拈來,而不是“書到用時方恨少”!
推薦閱讀
Pandas處理數據太慢,來試試Polars吧!
懶人必備!只需一行代碼,就能導入所有的Python庫
絕!關于pip的15個使用小技巧
介紹10個常用的Python內置函數,99.99%的人都在用!
可能是全網最完整的 Python 操作 Excel庫總結!
總結
以上是生活随笔為你收集整理的几行代码,网盘链接提头来见!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python IDE 详细攻略,拿来吧你
- 下一篇: 下个软件包可能泄露信用卡信息,Pytho