• 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,#圆点、直角、液态 012
    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了!
     
  • 相关阅读:
    使用函数式语言实践DDD
    理解函数式编程中的函数组合--Monoids(二)
    理解函数式编程语言中的组合--前言(一)
    信息熵 交叉熵
    激光雷达感知方案
    卡尔曼滤波算法
    我平时用的 golang 项目结构
    记一个 aliyun tablestore go client 的大坑
    关于 signal.Notify 的一个小问题
    【Linux】【Jenkins】Linux环境搭建和遇到的问题和解决方案等
  • 原文地址:https://www.cnblogs.com/qun542110741/p/9346079.html
Copyright © 2020-2023  润新知