zoukankan      html  css  js  c++  java
  • 数据获取和基本处理

    复制本地文件到数据工具箱(DSToolBox)

    DSToolBox(以下简写为DSTB) 是隔离的环境,但是在运行 vagrant up 时,本地目录(为包含 Vagrantfile 文件的目录)会映射到 DSTB 的一个目录,这个目录是和 usr, root等系统文件夹在同一个等级的。所以我们可以通过这个文件夹来复制本地文件到DSTB。

    • 在 Linux 中,可以使用 scp (secure cp) 来将文件 copy 到 EC2 实例上。当然,这个需要使用 AWS 服务器。

    文件的解压缩

    • .zip ----- unzip File.zip
    • .tar.gz ---- tar -zxvf File.tar.gz
      • z: gzip 压缩格式
      • x: extract 解压
      • v: verbose 详细信息
      • f: file 文件
    • .tar.bz2 ---- tar -jxvf File.tar.bz2
      • j: bzip2 压缩格式
    • .tar.xz ---- tar -Jxvf File.tar.xz : 注意 J 大写
    • .tar.z ---- tar -Zxvf File.tar.z : 注意 Z 大写
    • 事实上,tar 自从 1.5 之后便可以自动识别压缩格式,也就是说上面参数的第一个字母可以不用写。tar -xvf File.tar.gz(/.tar.bz2/.tar.xz)

    in2csv 使用

    1. csv 格式定义

      • 每条记录独占一行,使用换行符(CRLF)分隔
      • 最后一行没有换行符
      • 首行为标题行
      # 标准CSV文件格式
      Field1, Field2, Field3 CRLF
      aa, bb, cc CRLF
      dd, ee, ff CRLF
      ...
      xx, yy, zz
      
    2. File.xlsx -> File.csv

      • 使用 in2csv File.xlsx > File.csv
    3. 查看 File.xlsx 文件

      • 使用 in2csv File.xlsx | head | cut -c 1-80
      • head 默认打印前10行内容;head -n n 为行数,比如 head -3
        • 请注意,这里的 n 行和我们的认知相比是少一行的。比如前三行是 1,2,3,那么使用 -3 这个参数只会打印出 1,2
      • cut 剪切后输出,-c 代表输出指定数量的词,-b 代表输出指定数量的字节。cut -c 1-80 输出1-80的词
    4. 使用 csvlook 查看

      • in2csv File.xlsx | head | csvcut -c ColumnA ColumnB | csvlook
      • csvcut -c ColumnA ColumnB 剪切表格中的 ColumnA 和 ColumnB
      • 我们使用管道的方式,将 csvcut 结果输出到 csvlook 中,以指定的方式显示。显示的效果确实很整齐和直观,和 mardown 中的表格很相似。
    5. 如果一个 .xlsx 文件包含多个 sheet,in2csv 方法默认只显示第一张 sheet,如果需要提取另一张工作表,添加 --sheet

    使用 curl 下载互联网数据

    通过浏览器打开 URL,不同的 URL 有不同的后缀,而浏览器会默认识别。比如 .pdf, .mp3, 这种格式会自动打开,.html则会自动跳转到相应的网页。
    而使用 curl 方式,数据则会被封装下载

    1. curl -s URL, -ssilent。这是因为 curl 在下载时会有默认的进度条,添加 -s 则此进度条默认不显示。

      • curl -s https://xxx/A.txt | head -10 下载 URL 中的 A.txt 并显示前十行。
      • 请注意,由于有后面有 head 显示命令,请添加 -s 选项,因为不加的话显示信息的格式等可能会出现错误
    2. curl -s https://xxx/A.txt > B.txt 将 A.txt 另存为 B.txt。

      • 另存命令一定要加 -s 参数,不然保存的 B.txt 会出现多余文本
      • > 也可以换成 -o,效果是一致的
    3. FTP 下载

      • curl -u username: password ftp://host/file
      • 这条命令使用 -u 参数,username:password 是在这条 URL 受密码保护时添加使用。
    4. 如果 URL 是一个目录,那么 curl 会将目录内容列出来。

    5. 如果访问简写的 URL

      • curl -L j.mp/locatbbar 必须添加 -L 参数 或者 --location 参数。curl 会进行重定向

      • curl -I URL返回相应信息的 HTTP 头部数据(报文)。当我们没有得到想要的结果的时候,就可以使用这条命令来查看目标网站的状态。

          ```bash
          curl -I baidu.com
          $ HTTP/1.1 200 OK
          Date: Wed, 25 Sep 2019 08:10:10 GMT
          Server: Apache
          Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
          ETag: "51-47cf7e6ee8400"
          Accept-Ranges: bytes
          Content-Length: 81
          Cache-Control: max-age=86400
          Expires: Thu, 26 Sep 2019 08:10:10 GMT
          Connection: Keep-Alive
          Content-Type: text/html
          ```
        
      • HTTP 报文的第一行是状态码

        • 301: 永久移除
        • 404:未找到
        • 403:被禁止

    调用 Web API

    • API: Application Programming Interface 应用程序编程接口
    • Web API 大多以 JSON, XML 这样的结构化形式返回数据。
      • 结构化形式的数据的优势在于:易于被其他工具(比如 jq)处理
    • 有的 API 是以的形式返回数据。意味着只要连接 API 数据就会源源不断到达。
    • 有的 API 需要使用 OAuth协议 登录。我们可以使用 curlicue 工具进行来快速进行握手。使用流程;
      • curlicue-setup 对特定的 API 获取授权
      • 使用 curlicue 调用 API。
  • 相关阅读:
    平时十二测
    无题十四
    暑假第十测
    无题十三
    noip错题集
    无题十二
    BZOJ整理
    志愿者招募
    修车
    任务安排
  • 原文地址:https://www.cnblogs.com/rongyupan/p/12487352.html
Copyright © 2011-2022 走看看