获取网页中所有的文字

# encoding=utf8

import sys

reload(sys)

sys.setdefaultencoding('utf8')

import re
import requests
from bs4 import BeautifulSoup


html = requests.get('https://mp.weixin.qq.com/s?src=11×tamp=1533887718&ver=1051&signature=Xszdx5nmmHyebcH0MXxyHi7-jDwGoNDUDXCHJzPVic68tXGRSTiM3CStUDfSR*aALaC3nK3Ez4e33uLR5ir1pLgy3vEvWXWOvVXgAbsXMn5fB-HWboOW26GH*KMRVhgX&new=1')
soup = BeautifulSoup(html.text, "html5lib")
data = soup.findAll(text=True)


def visible(element):
    if element.parent.name in ['style', 'script', '[document]', 'head', 'title']:
        return False
    elif re.match('', str(element.encode('utf-8'))):
        return False
    return True


result = filter(visible, data)

with open('res.txt', "w+") as p:
    for i in result:
        print(str(i))
        p.write(str(i))


print list(result)

Broadlink-e-control-db-dump bug fix

This script will “parse” the broadlink e-Control Android application **rmt.db database** and dump the IR / RF codes (in HEX format) for selected accessories into a text file which can be later used with broadlink-python to send the codes to the RM PRO hub.

这个东西在处理逻辑上有bug,如果出现查询为空的情况,就挂了。

Continue Reading

domoticz 检测设备在线状态

最近又开始折腾语音控制相关的东西,比较郁闷的是家里的电视机和机顶盒貌似并不能直接接入。于是每次想要开关电视和机顶盒就需要知道设备的在线状态。那么为了获取在线状态,最简单的办法就是创建一个开关,标记当前设备的状态:

设备类型如下:

如果不能手工添加开关,现在硬件页面创建一个Dummy类型的设备,新增加的开关类型为Dummy。

Continue Reading

百度语音识别 语音唤醒失败

半夜起来给小朋友冲奶粉,于是忽然想到了那个在机柜里落灰的树莓派。当时用百度的语音识别和合成用python实现了一些功能。但是并没有实现语音唤醒,于是要想实现语音唤醒就只能不断的轮询接口,然后发送到百度云进行识别。但是觉得这种方式太坑了,什么都上传了,感觉随时在被监听一样。今天又看了下百度的sdk发现支持语音唤醒了。还能自定义唤醒词。

唤醒词规则

1 . 支持设置10个唤醒词,包含指令唤醒词和自定义唤醒词,指令唤醒词不支持自定义;10个唤醒词中,最多可以设置3个自定义唤醒词,最多可以包含3个两字指令唤醒词(如播放、暂停、拍照等)

2 . 已经支持的指令唤醒词有:
相机类:拍照、茄子
音乐类:增大音量、减小音量、播放、停止、暂停、上一首、下一首、
电灯类:打开电灯、关闭电灯、增大亮度、减小亮度
手电筒类:打开手电筒、关闭手电筒

3 . 自定义唤醒词可根据应用的个性化需求来免费定制,例如您的应用希望通过“你好百度”启动应用,则就可以设置“你好百度”为唤醒词;

4 . 建议每个自定义唤醒词在3至5个字之间(这里的1个字是指1个汉字、或1个英文字母),4个字最佳;一个唤醒词可以包含最多2个(含)英文字母;唤醒词中暂时不支持纯英文单词,如california;

5 . 唤醒词定制的温馨提示:请勿选择太常用的词作为唤醒词,例如”吃饭吧”,在生活中经常会用到,容易误唤醒;为保证唤醒效果,不同意义的唤醒词,请考虑唤醒词之间的差异,尽量保证唤醒词之间不易混淆;唤醒词过短会导致唤醒错误率较高,请不要选择太多短唤醒词(包括指令唤醒词);

6 . 唤醒词的音节覆盖尽量多,长度最少为4个音节;相邻音节请尽可能规避,字要发音清晰响度大;生僻字请尽量规避;零声母字请尽量规避;请避免使用叠词;例如:质量较高的唤醒词:“百度外卖”,音节覆盖多差异大;质量较差的唤醒词:“语音识别”,“语音”两个字均为零声母字,不是一个质量高的唤醒词;

Continue Reading

Mac IDA Pro 插件编写指南 v1.0

Windows版的插件编写可以参考的文档比较多,并且也有专门的向导可以来做这件事情,相对来说比较简单。但是针对Mac下的插件编写虽然也有一些参考文档但是都比较老旧。有参考价值但是意义不大,形同鸡肋。Windows下的插件编写可以参考下面两篇文章中的向导:IDA Pro Plugin wizard for vs2013 以及 Ida Plugin Wizard For VS2010

现在开始正题,测试环境为:

Mac OS 10.9.4

Xcode 5.1.1

IDA Pro For Mac 6.5+sdk65

如果环境不一样可能存在些许的差异,下面开始说插件的创建方法。

  1. 运行Xcode选择新建项目,从OSX中选的Framework & Library类,然后选择STL C++ Library(注意不要选择C/C++ Library,选择该项会在编译的时候出现非常多的诡异的错误,即使能够解决也相当的麻烦。)

1

Continue Reading

深入解析Xcode无证书编译以及真机调试

从标题就可以看出文章的主要内容了,一个是无证书编译,另外一个则是真机调试。网上关于此类文章很多,但是基本都是抄来抄去的,也没一个详细的说明具体这么做的原因。并且配置的步骤也基本一致,没什么太大的区别。

对于第一部分来说,与网上的内容大体一致,也没什么奇怪的东西。简单的说就是通过修改xcode的配置文件来实现无证书即可编译.app文件。先说第一部分内容,步骤如下:
1. 执行Command+Q来彻底关系Xcode,修改/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
/SDKs/iPhoneOS7.1.sdk/SDKSettings.plist
将以下两个字段修改为NO:

CODE_SIGNING_REQUIRED
YES
ENTITLEMENTS_REQUIRED
YES

1

Continue Reading

GPS坐标 转 火星坐标

gps

无聊写了个应用叫做Find my car,但是获取到的坐标一个是标准的gps坐标,另外一个就是上面的图吧的坐标。但是这个坐标直接在高德地图上标记却是错误的,于是就想办法看怎么转换下,不错这里直接有份源代码可以参考:猛击此处下载

这个项目引入了很多自定义的sqlite3的文件,其实没什么必要,改写一下就ok了。

Continue Reading