前几天写的“你画我猜”(draw something)单词猜测工具,最后提到了有道已经做了相关工具。既然有大树了,俺们就可以直接乘凉了~ 使用有道网页版的改进版本来了:直接发送查询请求然后对返回结果格式化就搞定了,非常easy:)(需要用到lxml模块) 使用方法不变: 运行的命令行就是 char_str为程序显示的乱序字符串,把让你拆的所有字符串起来做一个字符串 num是程序让你猜的单词包含的字符个数;可不填,这样就变成python版词典了:)
Posts Tagged ‘python’
“你画我猜”(draw something)单词猜测工具 – 升级版
Posted: April 7, 2012 in PythonTags: 猜词, draw something, guess, lxml, python, xpath, 工具
选择最快的appstore ip地址之Python版
Posted: April 6, 2012 in PythonTags: appstore, 速度, itunes, ping, python, 加速, 测速
今天才用上正统的Appstore软件下载方法:从iTunes端下载,然后PC端与iOS设备同步。然后俺就发现,下载速度那个慢啊。。。 从网上得到如下消息: 苹果为 App Store 准备了 a1.phobos.apple.com 到 a2000.phobos.apple.com 这么一群服务器,美国、欧洲、日韩、港澳……就是没有中国。。。 不管真假,让咱们用Python挨个ping出哪个地址最快,然后加到hosts里面吧:) 以下代码为Windows中文版,如果其它版,请把speed_ptn行的字符串改成对应的: 找到最快的以后就可以改hosts文件了,这个不懂的自己google吧。
OpenCV 2.3.1 Python Bindings installation on Windows 7
Posted: April 3, 2012 in PythonTags: opencv, opencv 2.3, python, python bindings, windows, windows 7, windows 7 x64
Today I searched several post about how to install OpenCV Python bindings on Windows 7. And I found many of them made it too complicated. Here is my simple solution. Many thanks to Christoph Gohlke, Laboratory for Fluorescence Dynamics, University of California, Irvine, his work makes many Python modules be easy to be installed on [...]
“你画我猜”(draw something)单词猜测工具
Posted: April 1, 2012 in PythonTags: chinese dict api, dict api, draw something, guess, itertools, python, word
Apr.6 更新:修正一处elif写成if的bug;增加ctrl-c强制停止的支持;增加对不填字符个数的用处的说明 最近“Draw Something”很火,我也玩了几次。碰到过靠谱的搭档,也碰到过很不靠谱的搭档。当然我自己也属于不靠谱一类,哈哈。 碰到的不靠谱的人多了,猜个词就费劲了。试词语让人很不爽。 所以就想写个Python脚本干这事。 首先想到了我这边对备选的字符进行排列,然后找个网络词典的接口来进行查验。 网上能搜到的在线词典的接口比较少,有dict.cn, iciba.cn和dict.qq.com的。其实我本人想用iciba的来着,不过貌似现在不能用了。最后选择了qq的词典。json返回值,我很喜欢。 刚才找了下google translate的接口,确实有。不过1M字符=20刀的价格真是伤不起。 接口搞定,就差对所有字符排列组合了。最后俺选用了itertools.permutations方法。这个方法比较傻,对所有字符进行穷举排列;如果哪位同学有更好的算法,欢迎不吝赐教:) 好了,不多说了,上代码 运行的命令行就是 char_str为程序显示的乱序字符串,把让你拆的所有字符串起来做一个字符串 num是程序让你猜的单词包含的字符个数;可不填,这样就变成python版词典了:) 刚才写这篇文章的时候发现有道词典已经做好了更先进的工具(毕竟人家有完善的词库,俺这只是个小python脚本~),大家如果真的要用的话,就去用它的吧,地址在这里。
Manipulate your wireless router using Python
Posted: March 13, 2012 in Python, SecurityTags: http authentication, http basic authentication, lxml, netgear WGR614, netgear WGR614v7, python, security, urllib2, wireless security
Here below I just give a thread about how to manipulate your wireless router by refresh/read/delete logs. I think you could do more things than this. As the theory is the same. This scipt can be used for monitoring who else is using the network doing what now if you find your WoW is lagged [...]
杂七杂八的Python小脚本集合
Posted: November 18, 2011 in Coding, PythonTags: java decompiler, jd, jd-gui, python
最近工作中总会碰到各种小而麻烦的问题,为了方便快捷的解决,我都是直接在IDLE里面写了完成的,都懒得写个py文件,要的就是效率。这篇文章就是记录下这些小家伙。虽然小,但是比较方便实用:) 编译project过程中,当编译出包含某个字符串的文件的时候打印出它所在路径及其文件名 用Java Decompiler反编译后生成的java文件不美观:最后5行是没用的注释;每行开头都是有注释行数,形如/* 177 */ 这样的。所以写了个脚本搞到这事: 暂时就这么多吧,以后有新的再补充。
AndroidDriver for Selenium Python Client
Posted: October 15, 2011 in Python, SeleniumTags: android, android-driver, git, git push error, github, python, python bindings, selenium, selenium-server, webdriver
My first real project! 这是我第一次想把自己工作相关的东西拿出来开源,这也是我觉得我迄今为止做成的最像个样也最有成就感的一个工程: 一是之前自己都没有用SCM,现在用上git后发现真的非常之方便好用 二是之前都是在博客上发布些自己写的小工具,不能真正和世界挂钩。其实自己写过很多和Android自动化测试相关的东西了,只是没公开而已。这次是给Selenium+Android写的,应该有挺多人能从我写的东西里面受益吧。 本来想是不是能争取做selenium的一个committer提交的,不过鉴于俺新手的水平,没敢提。先自己练着吧。。。 这个是我的开源项目地址:https://github.com/truebit/AndroidWebDriver4Python 说明文档,需要知道的都在里面了:https://github.com/truebit/AndroidWebDriver4Python/blob/master/README 现在是1.0-final版,做了20次的压力测试(真机和模拟器各10次),没有问题 下一步准备实现同时对多个设备的操作,应该不是啥大问题。 大家如果有什么问题或者建议请在GitHub提出来,也可以在微博上问我:@SeganW 题外话,在家的时候提交修改出现以下错误: error: The requested URL returned error: 403 while accessing https://truebit@github.com/truebit/AndroidWebDriver4Python.git/info/refs fatal: HTTP request failed 后来终于知道:原来GitHub只有ssh形式的clone代码才是可以读写的。要修改也挺简单: 编辑该repo目录下的.git/config文件,找到url那行,把前面的https://truebit改成ssh://github 改完的效果是这样的: url = ssh://git@github.com/truebit/AndroidWebDriver4Python.git 改之前是 https://truebit@github.com/truebit/AndroidWebDriver4Python.git 其实就是从read-only的https改成read-write的ssh!
过了九月以后就是美剧爆发的季节,等有字幕的RMVB(我承认我对画质的要求下降了。。。)已经跟不上进度。遂又开始了每周去eztv下载avi然后去射手搜字幕的时候。 字幕这个事呢,不能强求。有些字幕组会做中英文合并的单字幕文件,有些呢,就是中英文分开的两个。对于俺这种喜欢看双语字幕的人,就需要多做一步。以前都是人肉操作,现在改脚本帮忙了。 目标:把两种语言的两个字幕文件(比如.cn.srt文件和.en.srt文件)合并为一个单独的双语字幕文件(比如.combined.srt) 思路:想必大家都知道,把中、英文2个字幕文件中的任一个的内容加到另一个文件中保存后,那个合并过的srt文件就是双语字幕了。 脚本说明:非常的简单,就是读一个文件然后写入另一个。我懒得想复杂的功能了,以下代码可以成功执行的情况: 把代码保存为.py文件,放到希望整合srt的目录 该目录下有且只有2个.srt文件 文件名以.combined.srt结尾的文件就是咱们需要的了 脚本源码:
用Python+BeautifulSoup查快递状态
Posted: July 31, 2011 in Coding, PythonTags: beatiful soup, beautifulsoup, python, xlobo, 快递 查询
俺在淘宝代购了双鞋,从美国邮过来的,时间比较长。每天要去快递网站比较麻烦,一直有想用python模拟浏览器的想法,正好拿这个开刀。由于请求的网址中包括了快递单号,基本思路就出来了:只需要把带单号的地址发送请求过去,返回的页面中就有状态信息了;然后对返回的HTML页面进行解析,提取自己想要的信息就搞定了。 我用了urllib2来发HTTP请求(其它的httplib之类的都行)。解析网页这块找了好几个,比如HTMLParser.HTMLParser,sgmllib.SGMLParser。最后还是选择了BeautifulSoup。“靓汤”真的很“好喝”,哈哈。 使用Beautiful Soup,先下载最新的3.2.0(python 2.x专用),解压后进入BeautifulSoup-3.2.0目录执行如下命令即可以喝“靓汤”啦~ 上代码,解释看代码里面的注释:
魔兽世界CTM升级脚本(pywin32)
Posted: July 19, 2011 in Python, WoWTags: Blizzard Updater, CTM, 脚本, 魔兽世界, python, script, WoW, 升级
从年初就没玩WLK了,不过听说国服的魔兽世界要升级到CTM(国服叫“大地的裂变”)了,还是很早就下载了那个6.25G的升级补丁。期间看到NGA论坛很多人安装那些偷跑的第二部分补丁提前安装客户端。当时也没在意,心想到时候升级应该也没啥问题,升级那么多次了都。 谁想到,原来在这个新的资料片,暴雪把整个游戏文件都重构了,比如把之前很多文件都合为一个文件等。文件结构确实清爽了很多,但是这也加大了整个升级过程的工作量。特别坑爹的是升级的时候还需要联网和服务器验证和下载一些东西。中国的网络环境,再加上那几个升级服务器不给力(据说server2的文件本身就是错的),导致了太多更新失败! 俺也是其中之一。开服当天晚上都没更新成功,然后终于在第二天在一个帖子里面知道了Blizzard Updater的工作原理(以下是我发到知乎上面的): 这次的更新暴雪一个让人痛恨的地方是不能断点续传。如果失败了,之前更新成功的文件(都是.temp结尾的)会全部删除,然后重新开始。所以就有一种偷天 换日的办法,在显示安装完一个文件后马上把它复制出去。然后下次重装的时候,等更新器生成那些.temp文件并在进度到8%之前覆盖它们 这个脚本其实好早就想发出来了。但是实际上当时我完成更新的时候,写的脚本只是做了最简单的一步,就是打印出来Blizzard Updater上面的进度和正在安装的文字信息,这样之后就可以知道哪些需要备份,哪些正在进行中,然后手工备份的(太想早点弄好,所以奉行“够用就行”的原则)。 等待CTM安装更新的时候就粗略写了自动备份的功能,不过相当不成熟。其实我本来想写个完全傻瓜版(自动搜索WoW路径然后启动Blizzard Updater,自动备份,出错后自动重新开始更新并同时使用备份文件覆盖,然后循环直到成功)的发到NGA给大家用的,不过那个太耗时间就放弃了。。。 而且现在发出来的备份功能也没有实际测试过,只是自己检查代码几次后的成果(因为文件都更新掉了……)。 估计现在还没更新好的也是极少数了吧(从游戏人数就能看到,开服第二天深夜我登录的时候服务器上的人寥寥无几,第三天以后就越来越多了),用我这个脚本的可能性不会很大,呵呵。 脚本使用须知: 只供学习研究使用,后果自负,特别是备份功能。(实际上只有一处调用到删除文件操作;在cleanCp方法里面,对备份目录的文件进行的操作,可以把那行os.remove开头的删掉) 修改最开始的wowPath(魔兽3.3.5游戏目录)和backupPath(备份用的目录,最好找个不容易出错的地方)为自己对应的目录 如果只想用到查看更新进度功能,把从#back up files到最后后面的都删掉就行了 备份出来的文件都统一放在backupPath里面,需要手动覆盖到游戏目录(wowPath)里面:文件名有zhCN的放到Data\zhCN下面,enCN同理;其它放Data目录 脚本基本思路: 使用pywin32模块得到窗口标题栏及窗口文字内容,然后就是根据这些的扩展功能(备份)。就这么简单,本人也就Python初级水平,见笑了。 Python脚本: 上两张图,当时截的(未使用备份功能): 更新过程的一个截图,这已经是因为出错而重复更新的第2还是第3次了,不过有了备份文件,重新更新的速度会快很多(可以参看第二幅更新完成的图,后来加了时间戳就很明显了) 这个是更新成功以后的图,更新完以后提示我还要下载2G,还好不是杯具的10G党。。。其实只要Launcher上显示第二部分已经完成就可以进游戏了的,当时不知道,在还剩500M左右的时候我终于忍不住试了下,真的可以进去游戏了。