酷居科技

每个人都有属于自己的世界

Selenium使用chromedriver与Chrome版本对照表

Selenium使用chromedriver与Chrome版本对照表

在使用selenium启动谷歌Chrome浏览器的时候,是需要用到chromedirver的,两者之间的版本是需要匹配的,否则会出现下面类似的报错:

  1: Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'
  2:  
  3:   (Session info: chrome=65.0.3325.31)
  4:   (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.1.7601 SP1 x86) 
  5: (WARNING: The server did not provide any stacktrace information)
  6: Command duration or timeout: 0 milliseconds

这个例子中就是因为谷歌浏览器用的是65的版本,chromedriver用的是2.33的版本,而对于谷歌65的版本来说,与它匹配的chromedriver的版本是2.37或2.38,不匹配时就会出现上面的错误,使用匹配的版本后该问题即可解决。

完善一下Mouse Without Borders共享键盘的python代码

完善一下Mouse Without Borders共享键盘的python代码

周末无聊,之前有写过一篇《使用Python强化Mouse Without Borders的鼠标键盘分享功能》,其实之前分享的代码实际上有一些问题。

主要原因是,pyautogui.hotkey('ctrl','alt','1')  这句,热键按下后,键盘直接切换到其他电脑了,‘ctrl’和‘alt’在原来的电脑上没办法释放。

Python flatlib包安装方法记录

Python flatlib包安装方法记录

这两天突然想给公众号增加一个返回星盘信息的功能,于是看上了flatlib包,这是一个适用于传统占星术的python包。不过,起初用vs 2017和pycharm都不能成功安装。基本上都是附带的一个天文计算包pyswisseph安装失败(编译失败)。

最后,只能安装经过编译的pyswisseph文件。文件是这里下载的(应有尽有。。)。

玩一玩微信公众号开发

玩一玩微信公众号开发

最近玩了一下wxpy,微信机器人挺好玩。但是考虑到将来腾讯可能会关闭web版的微信,所以也不想怎么深入去玩,随便搞搞个人信息服务就行,比如建个数据库查询信息、调用百度aip读取图片文字,调戏妹子之类的就可以。

而微信公众号倒是可以深入去玩玩,这两天开始玩,基本上实现了wxpy之前的玩法。关键词记录一下,怕时间久了忘了。

1、用ngrok创建本地外网端口映射。

2、Python会用到的几个模块,falcon,wechatpy,waitress。(会用到的命令waitress-serve --port=80 wechatgz:app)

Python 调用百度ocr文字识别

Python 调用百度ocr文字识别

如果已安装pip,执行pip install baidu-aip即可。

  1: from aip import AipOcr
  2: 
  3:  """ 你的 APPID AK SK """ 
  4: 
  5: APP_ID = '你的 App ID' 
  6: 
  7: API_KEY = '你的 Api Key' 
  8: 
  9: SECRET_KEY = '你的 Secret Key' 
 10: 
 11: client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
 12: 

具体的SDK文档在这:http://ai.baidu.com/docs#/OCR-Python-SDK/top

用Python微信聊天

用Python微信聊天

通过安装wxpy第三方包,用几行简单的代码即可进行微信聊天。虽然蛋疼了点,但是如果你想感受类似在控制台上进行微信沟通的(装逼)感觉。那么可以尝试一下。当然,wxpy还有其他更(高)好(大)玩(上)的玩法。这里就不说了。我们只玩最简单的。

from wxpy import *
bot = Bot()
friends= bot.friends()
p = friends.search('微信好友名称')[0]
@bot.register()
def print_others(msg):
# 输出监听到的消息
print(msg)
# 回复消息
#msg.reply("hello world")
embed()

使用Python强化Mouse Without Borders的鼠标键盘分享功能

使用Python强化Mouse Without Borders的鼠标键盘分享功能

最近刚配了一台新台式机,于是现在都是两台电脑同时开着,下面笔记本屏幕,上面台式机屏幕。如下图:

Python获取Inventor参数、面积及重量值示例代码

Python获取Inventor参数、面积及重量值示例代码

用Python来玩Inventor,好处是简单暴力。缺点是,暂时没有现成的包。需要大量引用官方API。深入的事件处理,还需要慢慢琢磨。好吧,先记录下简单的。

import win32com.client
from win32com.client import gencache, Dispatch, constants, DispatchEx

oApp = win32com.client.Dispatch('Inventor.Application')
oApp.Visible = True
mod = gencache.EnsureModule('{D98A091D-3A0F-4C3E-B36E-61F62068D488}', 0, 1, 0)
oApp = mod.Application(oApp)
# oApp.SilentOperation = True
oDoc = oApp.ActiveDocument
oDoc = mod.PartDocument(oDoc)
#装配体文档时,注意切换调试
#oDoc = mod.AssemblyDocument(oDoc)
prop = oApp.ActiveDocument.PropertySets.Item("Design Tracking Properties")

Python正则表达式

Python正则表达式

1. 正则表达式语法

1.1 字符与字符类
1 特殊字符:\.^$?+*{}[]()|
以上特殊字符要想使用字面值,必须使用\进行转义
2 字符类
    1. 包含在[]中的一个或者多个字符被称为字符类,字符类在匹配时如果没有指定量词则只会匹配其中的一个。
2. 字符类内可以指定范围,比如[a-zA-Z0-9]表示a到z,A到Z,0到9之间的任何一个字符
3. 左方括号后跟随一个^,表示否定一个字符类,比如[^0-9]表示可以匹配一个任意非数字的字符。
4. 字符类内部,除了\之外,其他特殊字符不再具备特殊意义,都表示字面值。^放在第一个位置表示否定,放在其他位置表示^本身,-放在中间表示范围,放在字符类中的第一个字符,则表示-本身。

Python shutil模块--文件操作

Python shutil模块--文件操作

本模块主要提供了一些对文件和多个文件的高级操作,比如文件的拷贝功能、文件的删除功能。如果只是想对一个文件进行操作,使用os模块操作就可以了。不过要值得注意的一点是本模块里拷贝文件和删除文件,在有一些情况下系统的元数据没有办法拷贝和删除。

8.8.1 目录和文件操作

shutil.copyfileobj(fsrc, fdst[, length])

拷贝文件类似的对象fsrc的内容到目标对象fdst。参数length是指明缓冲区的大小,如果是负数表示整个文件读取;默认值是读取一块磁盘大小的数据,不会占用太多内存。如果对文件对象操作完成之后,再想从头读取文件对象,需要调整文件对象的位置指针。