<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          幾行代碼,網(wǎng)盤鏈接提頭來見!

          共 4525字,需瀏覽 10分鐘

           ·

          2021-07-19 15:42

          文 | 閑歡

          來源:Python 技術(shù)「ID: pythonall」

          背景

          晚上,女朋友下班回來,我邀請(qǐng)她下樓去散步,她一副愁眉苦臉的樣子,說今晚要加班。

          仔細(xì)詢問之下得知:女朋友今天接到上司一個(gè)任務(wù),領(lǐng)導(dǎo)丟給她一個(gè)文件,里面密密麻麻滿是百度網(wǎng)盤鏈接和提取碼,需要她今天結(jié)束之前把網(wǎng)盤里的文件提取出來。

          聽到她說要熬夜肝工作那種委屈的模樣,我是真的有點(diǎn)心疼。于是本能地問她,現(xiàn)在工作中最影響效率的是哪個(gè)環(huán)節(jié),我來幫她一起肝。她告訴我,看這個(gè)百度網(wǎng)盤的鏈接看得眼都花了,要復(fù)制鏈接,以及復(fù)制提取碼是個(gè)技術(shù)活,因?yàn)橛衅渌淖指蓴_,經(jīng)常復(fù)制不準(zhǔn)。

          鏈接類似下面這樣的:

          鏈接: https://pan.baidu.com/s/1ctcXiZymWst2NC_JPDkr4Q 提取碼: j1ub 復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦

          想必大家看到這個(gè)鏈接,都不會(huì)陌生。不止百度網(wǎng)盤,還有好多網(wǎng)盤都是這樣的。

          既然這樣,那我當(dāng)然要幫她解決這個(gè)棘手的問題。

          思路

          其實(shí)她的需求很簡(jiǎn)單,把網(wǎng)盤鏈接和對(duì)應(yīng)提取碼從這個(gè)分享文字中提取出來。

          大家還記得咱們前段時(shí)間給大家分享了正則表達(dá)式的文章吧?忘記了就回頭看看這兩篇文章:懵了!女友突然問我什么是正則表達(dá)式

          這下女友總算滿意了!

          解決這個(gè)需求只需要用正則表達(dá)式匹配分享文字中的 URL 和提取碼就行了。

          實(shí)現(xiàn)解析

          代碼很簡(jiǎn)單,直接上:


          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)

          接下來,測(cè)試一下:

          str = '鏈接: https://pan.baidu.com/s/1ctcXiZymWst2NC_JPDkr4Q 提取碼: j1ub 復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦'
          print(url_regex.findall(str)[0])
          print(code_regex.findall(str)[0])

          可以在控制臺(tái)上看到打印輸出兩行,第一行是鏈接,第二行是提取碼:

          https://pan.baidu.com/s/1ctcXiZymWst2NC_JPDkr4Q j1ub

          幾行代碼一敲,事情就這么搞定了!

          等等,這太程序員思維了!

          現(xiàn)在還只是個(gè)程序,難道要她把一段段文字復(fù)制到我的程序里面再運(yùn)行?這不是更麻煩嗎???

          就這?

          當(dāng)然不行,我還是有點(diǎn)產(chǎn)品素養(yǎng)的!

          當(dāng)然要給個(gè)界面給她。我搜索了下我的知識(shí)庫,準(zhǔn)備用 tkinter 來畫一個(gè)簡(jiǎn)單的界面給她使用。

          其實(shí)現(xiàn)如下:

          def draw_window(self):
                  self.init_window = Tk()  # 實(shí)例化出一個(gè)父窗口
                  self.init_window.title("百度網(wǎng)盤提取鏈接工具_(dá)v1.0")  # 窗口名
                  self.init_window.geometry('800x300+10+10')
                  # 源信息
                  self.init_data_label = Label(self.init_window, text="復(fù)制的提取信息")
                  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")  # 原始數(shù)據(jù)錄入框
                  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)  # 調(diào)用內(nèi)部方法  加()為直接調(diào)用
                  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)

          上面就是畫一個(gè)界面的代碼,運(yùn)行之后長(zhǎng)這樣:

          界面

          丑是丑了點(diǎn),但是時(shí)間緊,任務(wù)重,先用起來再說。

          和解析代碼合體之后,正常的運(yùn)行情況應(yīng)該是這樣的:

          運(yùn)行

          當(dāng)然,還可以進(jìn)一步改造,比如獲取到網(wǎng)盤鏈接和提取碼之后,直接使用 selenium 來自動(dòng)控制瀏覽器打開相應(yīng)的百度網(wǎng)盤頁面,女朋友直接在頁面選擇文件點(diǎn)擊下載即可。

          但是今晚時(shí)間不夠了,先讓她用著。

          總結(jié)

          處理一個(gè)簡(jiǎn)單的需求,咱們就用到了正則、畫界面,還可以使用瀏覽器模擬操作的 selenium ,可見平時(shí)的知識(shí)積累多重要。小伙伴們平時(shí)還是要有意識(shí)積累一些實(shí)用的技術(shù),當(dāng)需求來時(shí)方可信手拈來,而不是“書到用時(shí)方恨少”!

          PS公號(hào)內(nèi)回復(fù)「Python」即可進(jìn)入Python 新手學(xué)習(xí)交流群,一起 100 天計(jì)劃!


          老規(guī)矩,兄弟們還記得么,右下角的 “在看” 點(diǎn)一下,如果感覺文章內(nèi)容不錯(cuò)的話,記得分享朋友圈讓更多的人知道!

          代碼獲取方式

          識(shí)別文末二維碼,回復(fù):210719

          瀏覽 45
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一区一区视频 | 噜噜噜久久久噜噜 国产 | 国产乱伦三级片导航 | 国产中文字幕网 | 中文无码在线播放 |