Porn Data Anaylize — Hadoop安装

这是一个系列的数据分析相关项目,包括环境搭建,数据分析,分析代码,分析报告等。目前数据来源于爬取到的100,000+数据
文章主要介绍相关的方法和原理,也算是自己对于大数据的一个初步的认识。

代码不会涉及具体的数据信息。如果需要相关的数据,可以参考以下文章自己爬取相关的数据信息:

某加密到牙齿的APP数据加密分析
攻城略地 再下一Porn

安装参考的是《Python + Spark 2.0+Hadoop机器学习与大数据实战》(林大贵 著),首先吐槽一下,林大贵的几本书前几章的内容完全一样,尤其是上面提到的这本与《Hadoop + Spark大数据巨量分析与机器学习实战》,两本书前7章内容完全一致。
买了两本书其实相当于买了一本半,并且重复的都是非常基础的部分。对于整本书来说倒是降低了写作的难度和时间,并且两本书的实例也基本一致,不过使用的语言略有不同。
书上介绍的安装版本比较老旧,也没有必要去安装一个老旧的版本。所以这里我安装的是3.3.0 具体的安装流程可以参考这个链接:http://hadoopspark.blogspot.com/2015/09/4-hadoop-26-single-node-cluster.html

不过需要注意的是里面的几条命令可能稍微有些问题: 使用下面的这条命令生成的key文件对应的host是本机的主机名:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

如果系统没有设置hostname,可以使用下面的命令生成key:

ssh localhost ssh-keygen -t rsa

两者的区别在于第一条命令生成的是username@hostname,第二条名称生成的是username@localhost

Continue Reading

Domoticz 插件开发教程

虽然domoticz官网提供了一个插件开发教程,但是在实际的开发过程中就会发现有很多内容写的不够详细,无法参考。 官网教程链接: https://en.domoticz.cn/wiki/Developing_a_Python_plugin 国内的中文wiki页面比较陈旧,文档也不是最新的,不建议参考。

其实真个插件主要分为两个部分:

  • 插件模板

  • 插件代码

插件模板主要就是插件的定义,以及相关的参数配置选项,格式为xml:


    
        

Baby Weather Plugin


支持从国内的天气服务器获取天气信息

Features

  • 支持和风天气
  • 支持彩云天气
  • 支持今天明天的天气预报信息

Devices

  • Temperature - 当前温度
  • Feeling Temperature - 当前体感温度
  • Humidity - 湿度
  • Pressure - 气压

Configuration

API KEY请自行注册相关的开发者账号,然后获取key。 技术支持:http://www.h4ck.org.cn 彩云天气:https://open.caiyunapp.com/ 和风天气:https://dev.heweather.com/
Continue Reading

Domoticz Baby Weather Plugin

支持彩云天气,和风天气,需要注册开发者账号之后添加apikey之后才能使用。
彩云天气:https://open.caiyunapp.com/
和风天气:https://dev.heweather.com/

支持信息:

  • Temperature – 当前温度
  • Feeling Temperature – 当前体感温度
  • Humidity – 湿度
  • Pressure – 气压
  • PM25 – 当前PM25浓度
  • PM10 – 当前PM10浓度
  • SO2 – 当前PSO2浓度
  • Weather forecast(Today) – 今天天气
  • Weather forecast(Tomorrow) – 明天天气
  • 等等

安装方法:

  1. 下载zip之后解压缩,放入Domoticz/plugins目录下,重启服务端。去网页端添加硬件即可。
  2. 切换到插件目录下,git clone https://github.com/obaby/baby_weather_plugin 重启服务端。去网页端添加硬件即可。
Continue Reading

ModuleNotFoundError: No module named ‘cryptography.hazmat.bindings._padding’

ubuntu下执行命令出现如下错误:

ubuntu@ip-172-31-11-253:~/nineuu_spider/Maomi$ python3 maomi.py
Traceback (most recent call last):
  File "maomi.py", line 8, in 
    from cryptography.hazmat.primitives import padding
  File "/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/padding.py", line 13, in 
    from cryptography.hazmat.bindings._padding import lib
ModuleNotFoundError: No module named 'cryptography.hazmat.bindings._padding'

但是实际上cryptography模块已经安装了:

如果要解决这个错误,安装paramiko即可:

pip3 install paramiko
Continue Reading

微信公众号文章爬虫

github上关于微信公众号文章的爬虫还是蛮多的,一搜一大把。基于各种技术,这里分享的是之前的做的基于selenium实现的方法。

要爬取的公众号列表修改wx_account.py下的内容

微信公众平台账号登录修改baby_wx_post_spider.py下的如下代码:

   
username='root@obaby.org.cn'# 账号
password='********'# 密码

如果要存储数据修改如下代码:

    
# add_wx_post(post_title, post_date, content, html_content, pcs, images_link_text, post_url, "2"
#             wx_account, nickname, wx_intro)
print('在此处更新数据库')

登录方式说明:如果不指定账号密码可以直接扫码登录,但是扫码之后需要输入密码,反而更麻烦。

输出日志:

H:\PyCharmProjects\baby_wx_spider\venv\Scripts\python.exe H:/PyCharmProjects/baby_wx_spider/baby_wx_post_spider.py
****************************************************************************************************
Wechat Post Spider System
By:obaby
http://www.h4ck.org.cn
http://www.obaby.org.cn
http://www.findu.co
****************************************************************************************************
[*] System starting ..................
[*] Try to login with username:obaby.lh@163.com Password: ***************
[*] Please scan the qrcode to continue
[*] Scan the QRCode with your cell phone to login!!
[*] Spider starting.....................
[*] Current Wechat account is:
青岛文旅
[*] all passed!
[*] Link:http://mp.weixin.qq.com/s?__biz=MzU0NTc4OTI5MQ==&mid=2247490126&idx=1&sn=29a88b4ceef1cdbd6584702fdd46112a&chksm=fb66de4acc11575c946e802cb475845d7ff540d5a0d6da23834c0c4caa27bd3c3b7c2dd762e6#rd
在此处更新数据库
[*] Link:http://mp.weixin.qq.com/s?__biz=MzU0NTc4OTI5MQ==&mid=2247490126&idx=2&sn=87724f394f1533a23f50e5fddf7c88c1&chksm=fb66de4acc11575cb5c3a610371936a14f2743916b332f0bea3a3edc63dc2648351b386a0b95#rd
在此处更新数据库
[*] Link:http://mp.weixin.qq.com/s?__biz=MzU0NTc4OTI5MQ==&mid=2247490126&idx=3&sn=a9a3992058f069149102ea0fd9dae0b4&chksm=fb66de4acc11575c2c0ef3afe8c5de6c2e8b432c1b3d6c3e8d69f5cb439a85962517b147ee8b#rd
在此处更新数据库

项目地址: https://github.com/obaby/baby_wx_post_spider

PS: 代码如果发现bug,请自行修改!由于微信后台一直变化,所以如果代码不能运行,重新定位相关的元素更新xpath即可

BroadlinkRM2 Domotizc Plugin插件

每次异常断电树莓派就挂了,之前以为是读写问题,这次停电前主动关机,然后,tm依然挂了。用fsck修复,无数的错误,修复完没有效果。于是重装,重装之后主要就是重新弄好domoticz的博联插件,于是就折腾了一番,把插件的问题进行了修复。

插件原始的wiki页面http://www.domoticz.com/wiki/plugins/BroadlinkRM2.html,已经无法访问了。 并且网上随便一搜,关于这个插件的文章都是四年以前的。新的内容基本没有,我不是插件的原始作者,只是进行了修改和完善。 感谢原作者开发的插件。 虽然一直在用这个插件,但是这个插件配置起来却一点都不轻松,插件依赖于broadlink库。 而这个库在树莓派上安装的时候,虽然能安装成功。但是安装 成功之后多数时间会找不到这个库,从而导致插件启动失败。
插件项目地址:
https://github.com/mjg59/python-broadlink 看项目简介现在已经支持Broadlink RM2, RM3 and RM4 series controllers 。
其实要解决库找不到的问题也简单,不要用pip之类的安装。直接将python-broadlink的broadlink目录拷贝到BroadlinkRM2目录下就可以解决这个问题。
插件进行库搜索的时候会搜索当前插件目录下的库,所以没有必要安装之后再去进行拷贝。 我这里集成的是旧版本的python-broadlink库,如果需要可以替换为新版的库。新版本我没有测试,如果测试ok可以提交个补丁进行说明。

Continue Reading