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了!
