首页 > 其他 > 详细

数据获取和基本处理

时间:2020-03-13 22:24:01      阅读:72      评论:0      收藏:0      [点我收藏+]

复制本地文件到数据工具箱(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。

数据获取和基本处理

原文:https://www.cnblogs.com/rongyupan/p/12487352.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!