精通Python爬虫从Scrapy到移动应用(文末福利)
我能够听到人们的尖叫声:“Appery.io是什么,一个手机应用的专用平台,它和Scrapy有什么关系?”那么,眼见为实吧。你可能还会对几年前在Excel电子表格上给某个人(朋友、管理者或者客户)展示数据时的场景印象深刻。不过现如今,除非你的听众都十分老练,否则他们的期望很可能会有所不同。在接下来的几页里,你将看到一个简单的手机应用,这是一个只需几次单击就能够创建出来的最小可视化产品,其目的是向利益相关者传达抽取所得数据的力量,并回到生态系统中,以源网站网络流量的形式展示它能够带来的价值。
我将尽量保持简短的启发式示例,在这里它们将展示如何充分利用你的数据。
1.1 选择手机应用框架
借助于适当的工具向手机应用提供数据将是非常容易的事情。目前有许多优秀的跨平台手机应用开发框架,如PhoneGap、使用Appcelerator云服务的Appcelerator、jQuery Mobile和Sencha Touch。
本文将使用Appery.io,因为它可以让我们使用PhoneGap和jQuery Mobile快速创建iOS、Android、Windows Phone以及HTML5手机应用。我和Scrapy都与Appery.io无任何利益关联。我会鼓励你独立进行调研,看看除了本文中提出的功能外,它是否也能符合你的需求。请注意这是一个付费服务,你可以有14天的试用期,不过在我看来,它可以让人无需动脑就能快速开发出原型,尤其是对于那些不是网络专家的人来说,为此付费是值得的。我选择该服务的主要原因是它既能提供手机应用,也能提供后端服务,也就是说我们不需要再去配置数据库、编写REST API或为服务端及手机应用使用其他一些语言。你将看到,我们一行代码都不用去编写!我们将会使用它们的在线工具;在任何时候,你都可以下载该应用,并作为PhoneGap项目,使用PhoneGap的所有功能。
在本文中,你需要接入互联网连接,以便使用Appery.io。同时,还需要注意的是该网站的布局可能在未来会有所变化。请将我们的截屏作为参考,而不要在发现该网站外观不同时感到惊讶。
1.2 创建数据库和集合
第一步是通过单击Appery.io网站上的Sign-Up按钮并选取免费方案,来注册免费的Appery.io方案。你需要提供用户名、邮箱地址以及密码,然后就会创建好新账户了。等待几秒钟后,账户完成**。然后就可以登录到Appery.io的仪表盘了。现在,开始准备创建新的数据库以及集合,如图1.1所示。
图1.1 使用Appery.io创建新数据库及集合
为了完成该操作,需要按照如下步骤执行。
1.单击Databases选项卡(1)。
2.然后单击绿色的Create new database(2)按钮。将新数据库命名为scrapy(3)。
3.现在,单击Create按钮(4)。此时会自动打开Scrapy数据库的仪表盘,在这里,你可以创建新的集合。
在Appery.io的术语中,一个数据库是由一组集合组成的。大致来说,一个应用使用一个单独的数据库(至少在最初时是这样),每个数据库中包含多个集合,比如用户、房产、消息等。Appery.io默认已经提供了一个Users集合,其中包括用户名和密码(它们有很多内置功能)。图1.2所示为创建集合的过程。
图1.2 使用Appery.io创建新数据库及集合
现在,我们添加一个用户,用户名为root,密码为pass。当然,你也可以选择更加安全的用户名和密码。为实现该目的,请单击侧边栏的Users集合(1),然后单击+Row添加用户/行(2)。在出现的两个字段中填入用户名和密码(3)和(4)。
我们还需要创建一个新的集合,用于存储Scrapy抓取到的房产数据,并将该集合命名为properties。通过单击绿色的Create new collection按钮(5),将其命名为properties(6),然后单击Add按钮(7),就可以创建新的集合了。现在,我们还必须对该集合进行一些定制化处理。单击+Col添加数据库列(8)。每个数据库列都有其类型,用于对值进行校验。除了价格是数值类型外,大部分字段都是简单的字符串类型。我们将通过单击+Col添加几个列(8),并填充列名(9),如果不是字符串类型的话,还需要选择类型(10),然后单击Create column按钮(11)。重复该过程5次,创建表1.1中展示的列。
表1.1
在集合创建的最后,你应该已经将所需的所有列都创建完成了,就像表1.1中所示的那样。现在已经准备好从Scrapy中导入一些数据了。
1.3 使用Scrapy填充数据库
首先,我们需要一个API key。我们可以在Settings选项卡(1)中找到它。复制该值(2),然后单击Collections选项卡(3)回到房产集合中,过程如图1.3所示。