• 为什么选择树莓派
      我的目标是制作聊天机器人,相应的,对于平台的选择,希望能够拥有一定的性能,用来处理语音输入以及选择回答;同时能够方便联网,获取关注的热点并且连接服务器以实现热点更新,日程提醒;最后,对于语音,聊天,抓取这些功能都是第一次上手,希望选择的平台有足够多的资料以便解决开发中关于平台方面的问题。综上,树莓派3的以下特点吸引了我:
            • 四核Cortex-A53处理器,虽然桌面显示还会卡顿,但是对于语音处理绰绰有余。
            • 增加了WLAN以及BLE支持,不用外接USB网卡就可以实现无线网络连接,方便了不少,同时系统对WLAN支持更强了,方便配置无线网络。
            • 最热门的单板电脑,玩家众多,容易从社区获取支持。

  • 树莓派3上手
       关于树莓派3的开箱、外观、性能测试等网上已经有了不少测评,在此不多加赘述了,重点说说上手过程中遇到的问题。
       系统直接使用官方的RASPBIAN JESSIE,烧录上没有遇到问题,启动也很顺利。RASPBIAN JESSIE Lite对于单一任务可能是一个更好的选择,我也进行了试用。
       我选择树莓派主要是制作聊天机器人的,因此并没有准备键盘鼠标显示器等输入输出设备,计划第一次使用串口连接树莓派终端,配置好WLAN,之后的开发全部使用SSH登陆到树莓派进行。但是对于树莓派3,串口在第一次使用的时候基本是废的,原因是树莓派3不同于它的前辈们,处理器主频不固定,而使用独立参考时钟的串口被分配给了蓝牙芯片,引出串口的参考时钟依赖于系统主频,串口波特率随主频变化,不经设置自然无法使用,只能在终端看到一坨乱码。
    因此在初次使用树莓派3的过程当中,如果想要远程登陆,只有以太网或者无线网络连接后通过SSH登陆。树莓派默认是自动从DHCP服务器获取地址的,使用以太网连接时,应该保证网络中有DHCP服务器,这个其实不难,现在家用路由器都有DHCP功能,找根网连接到路由器的子网即可,然后从路由器的管理界面获得树莓派的Ip地址,就可以SSH登陆上去。要是和我一样路由器只有无线,没有以太网接口的话就要麻烦一些了,我的解决方案是将树莓派与电脑直连组成对等网络,然后在电脑上架设DHCP服务器,之后就可以连接树莓派了。
       使用树莓派接入无线网络以供登陆是个很方便的选择,但是要使树莓派连接到无线网络,必须在树莓派中/etc/wpa_supplicant下添加一个wpa_supplicant.conf文件,对于windows用户,无法读取ext4分区,没有办法通过Pc写入/etc/wpa_supplicant,不过在RASPBIAN JESSIE中提供了一个功能,只要在/boot目录下存在wpa_supplicant.conf文件,启动后会自动移动到/etc/wpa_supplicant完成WIFI的连接。
    连入网络之后,就可以正常通过SSH操作树莓派了。

  • Scrapy初探
       Scrapy是Python下的爬虫框架,可以方便的爬取网页,并对抓取的文件进行处理,而不用管繁复的协议。Scrapy安装需要很多依赖,建议使用pip安装。
       安装完成后输入:
       sudo scrapy shell '你想要抓取的网页'
    即可看到scrapy输出的抓取信息,如下图所示

    抓取结束后,会进入shell界面,response既是本次抓取的结果,输入respons.body()即可查看网页源码。
    这个shell界面完全和python的shell相同,可以使用python进行操作。
    对于网页的解析,可以使用xpath和正则表达式,下图显示使用xpath和正则表达式选择html文件中的网址

    解析出来的网址可以保存在一个list中便于处理,fetch(新的网址)可以重新抓取网页。shell下使用python进行操作,非常方便,可以用循环顺着网址list爬取网页,不过scrapy有更方便的做法,下回再说。
    scrapy的初次使用就到这里,下回我们将使用scrapy建立工程,写第一个真正意义上的爬虫。