本人python学习菜鸟一枚,随着对python的学习,感觉python越来越好玩了,上次用接口查询IP地址后,又看到有道词典查询、二维码生成等接口相关的方法,并对其做了简单的尝试,确实是挺好玩的。所以将整个过程记录下来。分享在此,供大家一起交流学习。
方法一、调用NowAPI接口实现二维码
1、基本环境
系统:windows 7
开发环境:pycharm python3
相关的模块和库 urlib urllib.parse
2、NowAPI简单的介绍
NowAPI是一家 数据服务公司,提供大量的数据接口,对于我们这种学习的菜鸟来说有很多东西可以用来实践,并且有一部分在某个范围内是免费的,对于我们刚接触开发实践是足够了。还有一些python2的示例程序,很不。
国内类似的公司:
百度数据接口:http://apistore.baidu.com/
都能提供很多的数据接口,提供免费和收费数据等合作方式。
3、NowAPI二维码接口介绍
1
2
3
4
5
6
7
8
9
10
11
|
在线生成二维码
注:API URL可直接在html img标签中使用,如data参数为中文请先urlencode(
'中文'
)请求示例: http:
/
/
api.k780.com:
88
/
?app
=
qr.get&data
=
test&level
=
L&size
=
6
注意: 如果您的使用量巨大请联系网站客服备注referer。
请求方式
Get
/
Post
请求url
HTTP: http:
/
/
api.k780.com:
88
HTTPS: https:
/
/
sapi.k780.com请求参数
参数类型是否必须备注
data string 是 需要生成二维码内例如:test
level string 否 纠错级别 <
'L'
,
'M'
,
'Q'
,
'H'
>,默认: L
size number 否 大小 <
1
-
20
>,默认:
6
|
4、思路
根据接口文档我们可以采用post提交,而post在python里面主要是带参数提交这里主要是用字典实现参数组合,而用urllib.parse模块的urlencode()方法实现参数和url的组合拼接。然后访问完整url,获取请求回应并写入文件即可。
5、源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#/usr/bin/env python
#_*_coding:utf-8_*_
import
json
import
urllib
import
requests
import
urllib.parse
url
=
'http://api.k780.com:88'
def
msgdata(send_msg):
#定义一个简单的函数
msg
=
{}
msg[
'app'
]
=
"qr.get"
msg[
'data'
]
=
send_msg
msg[
'level'
]
=
'L'
msg[
"size"
]
=
6
data
=
urllib.parse.urlencode(msg).encode(
"utf-8"
)
response
=
urllib.request.urlopen(url, data)
result
=
response.read()
with
open
(send_msg
+
"s.jpg"
,
"wb"
) as f:
f.write(result)
list2
=
[
"mysqlDBA"
,
"docker运维开发工程师"
,
"云计算巨头openstack"
,
"redis"
,
"Centos"
,
"mongodb"
,
"swarm"
]
for
i
in
list2:
msgdata(i)
|
生成结果示例:
1、centos 2 、docker运维工程师 3、mongodb
4、mysqlDBA 5、redis 6、swarms
7、云计算巨头openstack
总结和分析: 以上的二维码是可以用微信等扫一扫等功能扫描出结果。
方法二、依赖qrcode和image包生成二维码
依赖安装
1
2
3
4
|
pip
install
qrcode
qrcode 依赖 Image 这个包:
pip
install
Image
|
附代码:
1
2
3
4
5
6
7
8
|
#!/bin/bash/env python
#-*-congding:utf8-*-
import
qrcode
strlist=[
"http://www.baidu.com"
,
"MySQLDBA"
,
"Docker云计算"
,
"Openstack云计算"
]
for
index,item
in
enumerate(strlist) :
img=qrcode.
make
(item)
with
open
(
"D:\pythontest\erweima\image"
+str(index)+
".png"
,
"wb"
) as f:
img.save(f)
|