美文网首页程序员
Python 初探 leancloud

Python 初探 leancloud

作者: 谢三弟 | 来源:发表于2016-04-24 17:29 被阅读463次

    0x01 前言

    很久没有写 Python 了,自己阿里云的服务器也忘记续费而被释放。当初用的东西有点重,Ubuntu 下定时任务执行一个 Python 爬虫,将爬取到的数据写入 MySQL ,接口是 Java 那一套 tomcat 。

    所以准备写个系列,从简单的使用 leancloud 的存储到 leancloud 的云引擎。

    0x02 准备

    安装 virtualenv

    使用 virtualenv 可以创建一个与系统隔离的 Python 环境,在其中安装的第三方模块版本不会与系统自带的或者其他项目中的模块冲突。

    安装 virtualenv > pip install virtualenv

    创建虚拟并激活虚拟环境
    cd yourProject
    virtualenv ENV(自取)
    source bin/activate
    

    命令行上出现 (ENV) 表示是在当前虚拟环境下

    使用 deactivate 可以退出虚拟环境

    安装 leancloud-sdk
    pip install leancloud-sdk
    

    0x03 数据存储

    初始化 leancloud
    import leancloud
    from leancloud import Object
    leancloud.init('id', 'key')
    

    id 和 key 在 项目 > 设置 >应用 Key 中查看。

    存储数据
    class GirlImage(Object):
        @property
        def src(self):
            # 可以使用property装饰器,方便获取属性
            return self.get('src')
    
        @src.setter
        def src(self, value):
            # 同样的,可以给对象的score增加setter
            return self.set('src', value)
    
    
    girl_image = GirlImage()
    girl_image.set('src',"地址")
    girl_image.save()
    

    执行完之后,你会在项目存储>数据下看到已经新建好了 GirlImage 这个表并且保存了一条src = 地址 的数据。

    爬取存储
    def http():
        page = 1
        url = 'http://www.dbmeinv.com/dbgroup/current.htm?gid=haixiuzu&pager_offset=' + str(page)
        headers = {'content-type': 'text/html;charset=UTF-8',
                   'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.87 Safari/537.36 QQBrowser/9.2.4907.400'}
        content = requests.post(url, headers).text
        images_codes = re.findall('<img class="height_min" .+? src="(.*?)"', content, re.S)
    
        # print images_codes
        for url in images_codes:
            girl_image = GirlImage()
            girl_image.set("src", url)
            girl_image.save()
    

    一个简单的小爬虫,爬了该网站一页图片,20条存入 leancloud 。

    查询
    
    query = Query(GirlImage)  # 这里也可以直接传递一个 Class 名字的字符串作为构造参数
    query.select('src')
    reslut = query.find()
    
    for i in reslut:
        print(i.get('src'))
    

    0x04

    初探就先这样结束了,我这里只是运用了很简单的功能。

    不过爬取>存储>查询,都写全了。

    后期我会再探 leancloud 写增量爬取加 leancloud 的云引擎。

    更多请参考

    leancloud 对象操作

    leancloud 查询操作

    相关文章

      网友评论

        本文标题:Python 初探 leancloud

        本文链接:https://www.haomeiwen.com/subject/beyfrttx.html