python有哪些好玩的應用實現,用python爬蟲做一個二維碼生成器


python爬蟲不止可以批量下載數據,還可以有很多有趣的應用,之前也發過很多,比如天氣預報實時查詢、cmd版的實時翻譯、快速瀏覽論壇熱門帖等等,這些都可以算是爬蟲的另一個應用方向!
今天給大家分享一個二維碼生成器的爬蟲版本實現!
爬蟲思路
網上有很多的二維碼自動生成的網頁,它可以將文本、名片、wifi分享等等都以二維碼的形式生成,只需要用帶有識別二維碼的app就可以識別,比如手機瀏覽器一般就自帶app哦!
 
PS:這里,普及一個很重要點,不要用帶有支付功能的app隨便掃碼(支付寶、微信等等)!!!不要用帶有支付功能的app隨便掃碼(支付寶、微信等等)!!!不要用帶有支付功能的app隨便掃碼(支付寶、微信等等)!!!重要的事情說三遍!
 
那么,我們可以找到一個網頁,通過requests的請求,去獲得對方服務器生成的二維碼,達到我們的目標!
大致流程是這樣的:
請求URL==>構造請求表單==>獲得服務器返回數據==>找到二維碼圖片地址==>下載圖片
代碼
代碼其實很簡單,短短20多行就可以

比較復雜的部分就是里面有幾個參數,背景顏色、大小、容錯率、形態等等,這里是寫好的,也可以做成可輸入的,這樣比較靈活!最后,把它們做成一個簡單的桌面程序
完整代碼:
 1 import requests
 2 from tkinter import *
 3 from PIL import Image,ImageTk
 4 def get_ewm():
 5     url = 'http://www.wwei.cn/qrcode-wwei_create.html'
 6     strs = entry.get()
 7     dat = {
 8         'data[text]':strs,
 9         'data[type]':'index',
10         'level':'L',#容錯率 LMQH
11         'moban_id':0,
12         'qrid':0,
13         'size':555,#圖像大小,單位px
14         'style_setting[bcolor]':'# ffffff',
15         'style_setting[fcolor]' : '# 000000',
16         'style_setting[inptcolor]':  '# 000000',
17         'style_setting[logo_border]': 0,
18         'style_setting[logo_height]':46,
19         'style_setting[logo_id]':'',
20         'style_setting[logo_width]':46,
21         'style_setting[mbtype_hb]':0,
22         'style_setting[protype]':2,#圓點、直角、液態 0\1\2
23         'style_setting[ptcolor]':'# 000000'}
24     html = requests.post(url,data=dat).json()
25     img_url =  html['png_url']
26     with open('123.png','wb') as f:
27         f.write(requests.get(img_url).content)
28     load = Image.open('123.png')
29     im1 = ImageTk.PhotoImage(load)
30     label = Label(tk, image=im1,compound = 'bottom')
31     label.image = im1
32     label.grid(row=2,columnspan=6)
33 if __name__ == '__main__':
34     tk = Tk()
35     tk.title('二維碼生成器')
36     tk.geometry('640x600+200+20')
37     entry = Entry(tk, font=('微軟雅黑'),width=60)  # 創建輸入框
38     entry.grid(row=1, column=4)  # 定位第1行3列
39     str_b = Button(tk,text='生成二維碼',command=get_ewm)
40     str_b.grid(row=1,column=5)
41     tk.mainloop()

 

如果想制作其他形式的,可以在主函數中繼續添加entry控件接收參數,get_ewm()函數中自動調整相關參數就ok了!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM