Google在线深度学习神器Colab1. Colab 执行终端命令2. 用Colab编写在线爬虫,并在线展示成果3.在线机器学习,决策树案例 - 泰坦尼克乘客存活状况 4. 在线学习Python编程

  • Colab是google最近推出的一项Python在线编程的免费服务, 有了它,不学Python编程的理由又少了一个
  • Colab环境已经集成了流行的深度学习框架Tensorflow,并附赠了一个虚拟机(40GB硬盘+2*2.30GHZ CPU+12.72GB内存),如果在国内无法访问google的服务又不想科学上网, 可以考虑微软推出的 notebook
  • Colab的操作类似于jupyter notebook
  • Colab如同使用 Google 文档或表格一样存储在 Google云端硬盘中,并且可以共享

1. Colab 执行终端命令

google为我们提供的Colab服务绑定一个Ubuntu虚拟机(40GB硬盘+2*2.30GHZ CPU+12.72GB内存), 我们只要在Colab中输入以!开头的终端命令即可

  • 查看虚拟机硬盘容量!df -lh
  • 查看cpu配置!cat /proc/cpuinfo | grep model\ name

查看内存容量!cat /proc/meminfo | grep MemTotal

  • 安装python依赖包
# 安装requests, 爬虫必备
!pip install requests
# 安装 lxml, 解析xpath语法
!pip install lxml
  • 安装 git
# 将获取的数据同步到github仓库
!apt install git

2. 用Colab编写在线爬虫,并在线展示成果

!pip install lxml
import os
import requests
from lxml import etree

# 负责下载电影海报
def download_img(db_id, title, img_addr, headers):

    # 如果不存在图片文件夹,则自动创建
    if os.path.exists("./Top250_movie_images/"):
        pass
    else:
        os.makedirs("./Top250_movie_images/")

    # 获取图片二进制数据
    image_data = requests.get(img_addr, headers=headers).content
    # 设置海报存存储的路径和名称
    image_path = "./Top250_movie_images/" + db_id[0] + "_" + title[0] + '.jpg'
    # 存储海报图片
    with open(image_path, "wb+") as f:
        f.write(image_data)



# 根据url获取数据,并打印到屏幕上,并保存为文件
def get_movies_data(url, headers):

    # 获取页面的响应内容
    db_response = requests.get(url, headers=headers)

    # 将获得的源码转换为etree
    db_reponse_etree = etree.HTML(db_response.content)

    # 提取所有电影数据
    db_movie_items = db_reponse_etree.xpath('//*[@id="content"]/div/div[1]/ol/li/div[@class="item"]')

    # 遍历电影数据列表, 
    for db_movie_item in db_movie_items:

        # 这里用到了xpath的知识
        db_id = db_movie_item.xpath('div[@class="pic"]/em/text()') 
        db_title = db_movie_item.xpath('div[@class="info"]/div[@class="hd"]/a/span[1]/text()')
        db_score = db_movie_item.xpath('div[@class="info"]/div[@class="bd"]/div[@class="star"]/span[@class="rating_num"]/text()')
        db_desc = db_movie_item.xpath('div[@class="info"]/div[@class="bd"]/p[@class="quote"]/span[@class="inq"]/text()')
        db_img_addr = db_movie_item.xpath('div[@class="pic"]/a/img/@src')
        print("编号:",db_id,"标题:",db_title, "评分:",db_score,"电影描述:", db_desc)
        # a表示追加模式, b表示以二进制方式写入, + 表示如果文件不存在则自动创建
        with open("./douban_movie_top250.txt", "ab+") as f:
            tmp_data = "编号:"+str(db_id)+"标题:"+str(db_title)+"评分:"+str(db_score)+"电影描述:"+ str(db_desc)+"\n"
            f.write(tmp_data.encode("utf-8"))

        db_img_addr = str(db_img_addr[0].replace("\'", ""))
        download_img(db_id, db_title, db_img_addr, headers)


def main():
    # 使用列表生成式,生成待爬取的页面url的列表
    urls = ["https://movie.douban.com/top250?start="+str(i*25) for i in range(10)]

    # 设置请求头
    headers = {
        # 设置用户代理头(为狼披上羊皮)
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
    }

    # 为避免重复运行程序,造成内容重复,这里把上次的文件清除(可跳过)
    if os.path.isfile("./douban_movie_top250.txt"):
        os.remove("./douban_movie_top250.txt")

    # 从列表取出url进行爬取
    for url in urls:
        get_movies_data(url, headers)

if __name__ == '__main__':
    main()
import os
from IPython.display import display, Image, FileLink
names = [f for f in os.listdir('./Top250_movie_images/')]
display(FileLink("./douban_movie_top250.txt"))
for name in names:
   display(Image('./Top250_movie_images/' + name))

3.在线机器学习,决策树案例 - 泰坦尼克乘客存活状况

4. 在线学习Python编程

推荐一: 菜鸟教程

推荐二: 廖雪峰的官方网站

5.保存当前Colab文件

  • Colab文件和Google的在线文档一个性质,不需要保存!

6. 将当前的Colab转换为python标准文件,并保存到本地

7. 共享Colab程序

Colab资源可以以链接方式共享给其他人, 其他人可以直接在线运行, 观看效果

小技巧:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏MYSQL轻松学

Mysql Group Replication介绍

一、Mysql Group Replication简介 Mysql Group Replication(MGR)是一个全新的高可用和高扩展的MySQL集群服务...

71440
来自专栏睿哥杂货铺

Linux 性能诊断:负载评估

从load avgerage等总括性的数据着手,参考CPU使用率和I/O等待时间等具体的数字,从而自顶向下快速排查各进程状态。

305100
来自专栏北京马哥教育

4个Linux服务器监控工具

下面是我想呈现给你的4个强大的监控工具。 htop – 交互式进程查看器 你可能知道在机器上查看实时进程的标准工具top。如果不知道,请运行$ top看看,运行...

45390
来自专栏假装我会写代码

两个非常棒的 Laravel 权限管理包推荐

54830
来自专栏FreeBuf

聊一聊万恶的锁首

当手持8倍镜的98K都不能在使用程序时干掉万恶的锁首时,内心是十万头羊驼奔跑的场景,那我们就来聊一聊市面上常见的锁首方式。 ① :设置OpenHomePage、...

22370
来自专栏搜云库

HBase 深入浅出

HBase 深入浅出 HBase 在大数据生态圈中的位置 提到大数据的存储,大多数人首先联想到的是 Hadoop 和 Hadoop 中的 HDFS 模块。大家熟...

474100
来自专栏FreeBuf

方程式组织DanderSpritz工具测试环境研究

DanderSpritz是NSA泄露的一款著名的界面化远控工具,由于其功能强大因此也成为了许多安全人员争相研究的对象。但在实际测试过程中,由于缺少说明文档,所以...

14040
来自专栏IMWeb前端团队

再见2015 再见cmd

本文作者:IMWeb yisbug 原文出处:IMWeb社区 未经同意,禁止转载 2015年已经快要过去了,你是否还在使用有着十几年历史的cmd命令行...

33390
来自专栏解Bug之路

解Bug之路-记一次JVM堆外内存泄露Bug的查找 顶

JVM的堆外内存泄露的定位一直是个比较棘手的问题。此次的Bug查找从堆内内存的泄露反推出堆外内存,同时对物理内存的使用做了定量的分析,从而实锤了Bug的源头。笔...

10240
来自专栏落影的专栏

iOS开发笔记(五)

前言 社会的模式很多是重复的,当你做一样事情很擅长时,与之类似的事情也能触类旁通。 正文 Code开发 1、delegate的trick 很多人习惯在调用de...

52240

扫码关注云+社区

领取腾讯云代金券