
作者:閑歡
來(lái)源:Python 技術(shù)
晚上下班回來(lái),我發(fā)現(xiàn)女朋友坐在書桌前“搞事情”。不禁有點(diǎn)驚訝,居然沒(méi)有葛優(yōu)躺,居然沒(méi)有刷B站?。。?/span>
但是看她時(shí)而抓頭,時(shí)而寫些什么。
我就跑過(guò)去問(wèn):寶貝,你在干嘛呢?
她說(shuō):我今天簽名字的時(shí)候發(fā)現(xiàn)自己寫的名字好丑,回來(lái)就想著練一下,但是怎么都寫不好。
“不要著急,先去刷刷視頻歇一下?!?/span>
她喪氣地走向了沙發(fā)...
看她這樣,我心疼啊,得做點(diǎn)什么讓她高興一下。靈機(jī)一閃,不如就給她做個(gè)個(gè)性簽名軟件吧!
說(shuō)干咱就干!
略微想了一下,這事咱不能蠻干,畢竟不是專業(yè)的,搞一個(gè)那種實(shí)打?qū)嵉乃囆g(shù)字還是有點(diǎn)難度的。我擅長(zhǎng) Python 啊,我去找個(gè)簽名網(wǎng)站合作一下就行了。我?guī)е夹g(shù),它帶著接口,我們倆一拍即合!
打開(kāi)百度,搜索關(guān)鍵詞“藝術(shù)簽名”,馬上出來(lái)一堆網(wǎng)站。我隨便打開(kāi)了一個(gè),界面是這樣子的:
網(wǎng)站首頁(yè)
看起來(lái)還不錯(cuò),咱們先看看你是不是一個(gè)好搭檔(能夠提供藝術(shù)字的接口)。
我直接打開(kāi)開(kāi)發(fā)者模式,然后在輸入框輸入“阿花”,點(diǎn)擊生成,界面上出現(xiàn)了藝術(shù)字。同時(shí),我們來(lái)看看網(wǎng)絡(luò)請(qǐng)求。在這些網(wǎng)絡(luò)請(qǐng)求中,我注意到了兩個(gè)請(qǐng)求,有可能跟我們的接口有關(guān)。
網(wǎng)絡(luò)請(qǐng)求
接下來(lái),咱們一個(gè)個(gè)查看這兩個(gè)請(qǐng)求。打開(kāi)第一個(gè)請(qǐng)求的詳情,如下所示:
網(wǎng)絡(luò)請(qǐng)求1
看到這個(gè)請(qǐng)求的參數(shù),我就知道這是我們的目標(biāo),因?yàn)樗宋覀冃枰l(fā)送給網(wǎng)站后臺(tái)的內(nèi)容。我們?cè)倏匆幌抡?qǐng)求預(yù)覽便知道,這個(gè)請(qǐng)求返回的是一個(gè) html 頁(yè)面:
網(wǎng)絡(luò)請(qǐng)求預(yù)覽
返回的頁(yè)面大體是對(duì)應(yīng)著這個(gè)網(wǎng)頁(yè)的內(nèi)容,但是在藝術(shù)簽名那里留了個(gè)空白,沒(méi)有顯示藝術(shù)簽名。
網(wǎng)絡(luò)請(qǐng)求響應(yīng)
我們繼續(xù)看響應(yīng)內(nèi)容,可以觀察到那個(gè)空白處的html是這樣的:
<img id="showImg" src="cache/162816844360698.png"/>
這很顯然是一個(gè)以時(shí)間戳命名的圖片。
我們?cè)倏纯吹诙€(gè)請(qǐng)求,是不是請(qǐng)求的內(nèi)容和這個(gè)圖片名稱一毛一樣呢?
網(wǎng)絡(luò)請(qǐng)求2
這意思很明顯了,網(wǎng)站先返回一個(gè)頁(yè)面,然后再請(qǐng)求一個(gè)圖片,把圖片加載到這個(gè)頁(yè)面。
熟悉這個(gè)流程之后,我們簽名部分就搞定了,即:
簽名部分搞定之后,剩下的就是畫一個(gè)界面,讓用戶輸入姓名、選擇字體,然后調(diào)用簽名接口就行。
這個(gè)網(wǎng)站的請(qǐng)求為 post 請(qǐng)求,一共有四個(gè)參數(shù):
word: 姓名 fonts: 字體 sizes: 字體大小 fontcolor: 字體顏色 colors: 簽名背景顏色
我感覺(jué)這個(gè)網(wǎng)站的字體大小、背景顏色、字體顏色都很符合我的口味,所以我就不打算改了。只需要輸入名字和字體就行。
核心代碼為:
url = 'http://www.kachayv.cn/' data = { 'word': name, 'fonts': mapping_list[font], 'sizes': 60, 'fontcolor': '#ffffff', 'colors': '#FD5668' }
result = requests.post(url, data=data)
result.encoding = 'utf-8' html = result.text
print(html)
p = re.compile('<img id="showImg" src="cache/(.*?)"/>')
match = p.findall(html)
urlretrieve('http://www.kachayv.cn/cache/' + match[0], './pic.jpg')
這里先獲取簽名圖片的網(wǎng)址,然后使用 urlretrieve 方法保存到本地。
界面內(nèi)容也比較簡(jiǎn)單,我們只需要姓名輸入框、字體下拉選擇框和一個(gè)提交按鈕就可以了。我們還是使用 tkinter 來(lái)簡(jiǎn)單畫界面。
核心代碼為:
def draw_window(self): self.init_window = Tk() self.init_window.title("阿花專屬簽名設(shè)計(jì)") self.init_window.geometry("800x500") self.init_window.geometry("+400+200") # 姓名 self.name_label = Label(self.init_window, text='鼎鼎大名', font=('微軟雅黑', 16), fg='black') self.name_label.grid(row=0, column=0, columnspan=1) self.name_entry = Entry(self.init_window, font=('宋體', 16)) self.name_entry.grid(row=0, column=1) # 選擇字體模式 self.font_label = Label(self.init_window, text='字體', font=('微軟雅黑', 16), fg='black') self.font_label.grid(row=0, column=5, columnspan=1) self.combox_list = ttk.Combobox(self.init_window, textvariable=StringVar()) self.combox_list.grid(row=0, column=6, sticky='W') self.combox_list["value"] = ("行書簽", "超級(jí)藝術(shù)簽", "瀟灑簽", "手寫連筆字", "行草簽", "花式簽", "溫柔女生", "個(gè)性簽", "商務(wù)簽", "正楷體", "楷書簽", "情書簽", "卡通可愛(ài)簽") self.combox_list.current(0) # 選擇第一個(gè) # 觸發(fā)按鈕 self.button = Button(self.init_window, text='美好來(lái)襲', font=('微軟雅黑', 16), command=self.get_sign) self.button.grid(row=1, column=3, rowspan=2, sticky='W') # 圖片展示 self.pic_label = Label(self.init_window) self.pic_label.grid(row=3, column=1, rowspan=10, columnspan=5, sticky='NW')
這里面有一個(gè)麻煩的地方,就是網(wǎng)站的字體是類似于“19.ttf”這樣子的,我肯定不能把這個(gè)顯示在界面上,而 tkinter 的下拉選擇框比較傻瓜,不能以 key-value 的形式傳值。
沒(méi)辦法,不能在一棵樹(shù)上吊死,我只能在中間加一個(gè)轉(zhuǎn)換:在界面上顯示人類看得懂的中文,獲取到這個(gè)中文字體名之后,再跟網(wǎng)站需要的火星文做個(gè)映射。
界面運(yùn)行之后,是這樣子的:
運(yùn)行界面
我們將上面兩部分的代碼整合在一起,然后再運(yùn)行,整個(gè)操作過(guò)程是這樣的:
運(yùn)行
女朋友在沙發(fā)上躺了沒(méi)多久,我把她喊到書房,說(shuō):我給你做了一個(gè)專屬簽名軟件,你看看合不合胃口?
她嘗試了一下,然后轉(zhuǎn)過(guò)頭來(lái)對(duì)我說(shuō):老公,你真棒!雖然界面丑了點(diǎn),但是這么短時(shí)間就把我的煩惱解決了,謝謝你!
情侶生活就是這樣的,平淡而樸實(shí)。其實(shí)這個(gè)問(wèn)題根本不需要我動(dòng)手做個(gè)丑陋的軟件,她直接去網(wǎng)站上操作,幾秒鐘的事。但是,我花點(diǎn)時(shí)間給她做一個(gè)專屬的,會(huì)讓她更開(kāi)心。其實(shí)她們并不需要你才華橫溢,不需要你有多大本事,只需要你在她們需要的時(shí)候給她們溫柔一擊,在不經(jīng)意間給她們一個(gè)驚喜,這就夠了!
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開(kāi)啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03