扇贝python_【扇贝批量添加单词到词库】利用python调用扇贝API (oauth2)
扇贝还是很不错的背单词系统,但是我一直不理解为什么官方提供的批量添加单词页面每次限制10个= =。 美剧党随手挤了很多单词准备导入的时候,还有从有道单词本导入的时候,都很尴尬。。查了一下,还没有人写过这方面的东西,所以尝试着用python写了个。
下载地址:http://pan.baidu.com/s/1bn93yft
github:https://github.com/yuchenlin/shanbayAddWords
扇贝API文档:http://www.shanbay.com/developer/wiki/intro/
基本思路:
1.请求用户授权
2.循环查词 获取词的ID
3.循环添加到词库 (需要词的ID)
功能很简单,思路也很清晰,但是第一次接触有关API的东西还是有点无从下手,于是看到了廖雪峰写过的一个新浪微博API的小demo,理解了具体的原理。
A.关于获取用户授权
A.1 设置参数
demo创建了一个类叫做APIclient来集成了各种属性,和各种get post方法的源头,方便使用。
其中几个重要的参数都可以简单的搞定,比如app_key secret redirect_url 然后给用户生成一个固定的引导授权地址。
A.2 获取code
当用户授权后,系统会自动根据回调地址回调code参数,如果设置成扇贝默认的回调地址,code部分直接显示在url中,让用户copy回来给我就好了。。虽然不够友好,但是也只能这样了,毕竟要想自动的接收,最开始就要用python调用浏览器来打开这个授权网页,这个感觉好像很麻烦。。
A.3 根据code生成token。
这个也直接写在类里了,不过很简单,按照文档就一步,之后的所有操作都是根据token来和服务器进行身份识别的,所以很重要,而且每一步都要确认token是否过期。
B.get查词
这个就很简单了,不多说,主要的亮点是json的数据格式很好,import json之后,系统自动处理为dict类型,特别方便调用。
C.post填词
更简单,但是要判断是否添加成功,毕竟不是每个词都在词库里记录了。
D.界面
tkinter 还是比较方便吧 但是在win和mac下尺寸不好调成一致,还有mac下输入框中文不能输入很闹心。如果哪一天出现了和vs搞winform那么简单无脑的IDE 我大概就离不开python了~
E.
也同时了解到了一个比较惊艳的python高级技巧,郁闷的是我不知道这个东西学名叫什么,从功能上来说,它实现了动态解析函数名的作用。
比如:
bdc_body =client.get.bdc__search(word=w)
这里的client.get 是这样的
def __getattr__(self,attr):defwrap(**kw):ifself.client.is_expires():raiseAPIError('21327','expired_token',attr)
url ='%s%s/'%(self.client.api_url,attr.replace('__','/'))
#print(url)return_http_call(url,self.method,self.client.access_token,**kw)
returnwrap
它以「__」作为分节符把函数名中的bdc和search作为字符串处理添加到了url中,把参数word=w当做attr字典传入,进行调用http_call去进行连接。 这里完全把函数当做一个变量来处理,可以返回,这样的操作使语言十分简洁,漂亮~~
扇贝python_【扇贝批量添加单词到词库】利用python调用扇贝API (oauth2)相关推荐
- 【扇贝批量添加单词到词库】利用python调用扇贝API (oauth2)
扇贝还是很不错的背单词系统,但是我一直不理解为什么官方提供的批量添加单词页面每次限制10个= =. 美剧党随手挤了很多单词准备导入的时候,还有从有道单词本导入的时候,都很尴尬..查了一下,还没有人写过 ...
- android输入法可以删掉吗,搜狗输入法功能科普二:如何添加或删除词库里的词(安卓篇)...
原标题:搜狗输入法功能科普二:如何添加或删除词库里的词(安卓篇) 小伙伴们大家好,我们又见面了今天给大家分享下如何来使用输入法的各种词库.目前搜狗输入法是有很多词库的呢,比如系统词库.个人词库.细胞词 ...
- python调用高德api路径规划_Python调用高德API实现批量地址转经纬度并写入表格的功能...
本段代码是先将需要转换经纬度的地址爬取在 '地址.csv' 文件里,文件截图示例: 代码展示 # coding=utf-8 # SPL # 时间:2020/12/20 21:15 import csv ...
- 利用Python调用ECMWF欧洲中心API批量下载数据
前段时间由于需要下载ECMWF(欧洲中期天气预报中心)的再分析数据,学习了如何利用Python调用ECMWF欧洲中心API进行批量下载.这种下载ECMWF数据的方法在官网上有非常详细的介绍.我只是对这 ...
- python如何分析高频词_利用Python统计演讲高频词
1月9日被誉为中国最牛的产品经理张小龙做了微信的年度演讲[1],引爆朋友圈. 1月10日采铜写了篇<张小龙四个小时的演讲没有讲什么?>[2],又引爆朋友圈.在现在几乎所有人张口就谈&quo ...
- python批量读取图片并复制入word_提取word文档中的图片并使用Python进行批量格式转换,出,Word,里,利用,python...
日常工作中,你是否遇到过这样的场景,领导发来一份 Word 文档,要求你将文档中的图片存储到一个文件夹内,并且还要将图片都改成 .jpg 或者 .png,你会怎么办?你是不是一边内心崩溃,一边开始一张 ...
- SVN 批量添加文件到版本库的命令脚本
svn status | grep "?" | awk '{print 2}' | while read line;do svn add{line};done; svn statu ...
- 轻轻松松背单词II 词库转换器(源代码)
原理很简单,看看就懂:) Imports System.IO Imports System.Text Module BDCWordConverterModule BDCWordConverter ...
- python调用gitlab api自动合并分支_Python3使用 GitLab API 进行批量合并分支
文章前言 每周五上午十二点前需要将项目上各组开发分支合并软集仓库分支, 需要在十个项目上进行 merge 程序员一般都是 很讨厌麻烦, 所以编写此脚本进行 批量 merge, 统一进行合并 另外, 如 ...
最新文章
- Spring事务异常回滚,try catch 捕获异常不回滚
- FD.io/VPP — VPP Agent — Telemetry Plugin
- 缩小数据文件尺寸报ORA-03297的处理办法
- Dataset之OttoGroup:OttoGroup数据集的简介、下载、案例应用之详细攻略
- 兴林村脱贫谋定向往宜居村庄-农业大健康·万祥军:美丽蝶变
- 腾讯云 wdcp ip:8080打不开,wdcp phpmyadmin打不开
- python3精要(59)-转换
- linux下的a.out文件
- wince bib文件合成
- [跪了]Servlet 工作原理解析
- windows 7 help 帮助文件无法打开的解决
- 大数据Hadoop原理介绍+安装+实战操作(HDFS+YARN+MapReduce)
- 嵌入式学习的几种线路图
- Davinci DM6446开发攻略——DSP开发工程建立
- 【信息学奥赛一本通】2075:【21CSPJ普及组】插入排序(sort)
- sin30的c语言表达式,c语言sin30怎么写
- UE4之Control Rig
- 深入Java虚拟机(六)线程同步
- windows升级新版本mysql
- 那些人生最重要的转折点