扇贝还是很不错的背单词系统,但是我一直不理解为什么官方提供的批量添加单词页面每次限制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)相关推荐

  1. 【扇贝批量添加单词到词库】利用python调用扇贝API (oauth2)

    扇贝还是很不错的背单词系统,但是我一直不理解为什么官方提供的批量添加单词页面每次限制10个= =. 美剧党随手挤了很多单词准备导入的时候,还有从有道单词本导入的时候,都很尴尬..查了一下,还没有人写过 ...

  2. android输入法可以删掉吗,搜狗输入法功能科普二:如何添加或删除词库里的词(安卓篇)...

    原标题:搜狗输入法功能科普二:如何添加或删除词库里的词(安卓篇) 小伙伴们大家好,我们又见面了今天给大家分享下如何来使用输入法的各种词库.目前搜狗输入法是有很多词库的呢,比如系统词库.个人词库.细胞词 ...

  3. python调用高德api路径规划_Python调用高德API实现批量地址转经纬度并写入表格的功能...

    本段代码是先将需要转换经纬度的地址爬取在 '地址.csv' 文件里,文件截图示例: 代码展示 # coding=utf-8 # SPL # 时间:2020/12/20 21:15 import csv ...

  4. 利用Python调用ECMWF欧洲中心API批量下载数据

    前段时间由于需要下载ECMWF(欧洲中期天气预报中心)的再分析数据,学习了如何利用Python调用ECMWF欧洲中心API进行批量下载.这种下载ECMWF数据的方法在官网上有非常详细的介绍.我只是对这 ...

  5. python如何分析高频词_利用Python统计演讲高频词

    1月9日被誉为中国最牛的产品经理张小龙做了微信的年度演讲[1],引爆朋友圈. 1月10日采铜写了篇<张小龙四个小时的演讲没有讲什么?>[2],又引爆朋友圈.在现在几乎所有人张口就谈&quo ...

  6. python批量读取图片并复制入word_提取word文档中的图片并使用Python进行批量格式转换,出,Word,里,利用,python...

    日常工作中,你是否遇到过这样的场景,领导发来一份 Word 文档,要求你将文档中的图片存储到一个文件夹内,并且还要将图片都改成 .jpg 或者 .png,你会怎么办?你是不是一边内心崩溃,一边开始一张 ...

  7. SVN 批量添加文件到版本库的命令脚本

    svn status | grep "?" | awk '{print 2}' | while read line;do svn add{line};done; svn statu ...

  8. 轻轻松松背单词II 词库转换器(源代码)

    原理很简单,看看就懂:) Imports System.IO Imports System.Text Module BDCWordConverterModule BDCWordConverter    ...

  9. python调用gitlab api自动合并分支_Python3使用 GitLab API 进行批量合并分支

    文章前言 每周五上午十二点前需要将项目上各组开发分支合并软集仓库分支, 需要在十个项目上进行 merge 程序员一般都是 很讨厌麻烦, 所以编写此脚本进行 批量 merge, 统一进行合并 另外, 如 ...

最新文章

  1. Spring事务异常回滚,try catch 捕获异常不回滚
  2. FD.io/VPP — VPP Agent — Telemetry Plugin
  3. 缩小数据文件尺寸报ORA-03297的处理办法
  4. Dataset之OttoGroup:OttoGroup数据集的简介、下载、案例应用之详细攻略
  5. 兴林村脱贫谋定向往宜居村庄-农业大健康·万祥军:美丽蝶变
  6. 腾讯云 wdcp ip:8080打不开,wdcp phpmyadmin打不开
  7. python3精要(59)-转换
  8. linux下的a.out文件
  9. wince bib文件合成
  10. [跪了]Servlet 工作原理解析
  11. windows 7 help 帮助文件无法打开的解决
  12. 大数据Hadoop原理介绍+安装+实战操作(HDFS+YARN+MapReduce)
  13. 嵌入式学习的几种线路图
  14. Davinci DM6446开发攻略——DSP开发工程建立
  15. 【信息学奥赛一本通】2075:【21CSPJ普及组】插入排序(sort)
  16. sin30的c语言表达式,c语言sin30怎么写
  17. UE4之Control Rig
  18. 深入Java虚拟机(六)线程同步
  19. windows升级新版本mysql
  20. 那些人生最重要的转折点

热门文章

  1. 【高效程序员系列】3、别碰鼠标------让键盘飞起来
  2. 【微信小程序】随机点名系统(点击开始滚动名字点击结束按钮结束滚动)
  3. 盘古开源:技术为基创新驱动数据存储体系完善
  4. python signal处理
  5. 商汤科技徐立:AI 将在10 年内创造一个印度和中国的总产值
  6. ctfshow-29-170
  7. 锂离子电池的仿真模拟
  8. 中国丹参市场经营模式与盈利预测报告(新版)2021-2026年
  9. 关键词(快排)刷词原理和方法
  10. VRCHAT模型上传常见问题汇总