博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux - iconv 使用 - 处理 curl 乱码问题
阅读量:4970 次
发布时间:2019-06-12

本文共 1567 字,大约阅读时间需要 5 分钟。

1. 概述

  1. 好久没有写博客了, 最近看了些东西, 但是不知道怎么输出
  2. 简单写点东西吧

2. 场景

  1. 最近发现一个网站, 时不时会更新电子书, 书还很好
  2. 网站有一个 排行榜, 会把近期更新的电子书, 都列出来
  3. 我之前的思路, 是隔两天扫一轮
  4. 现在网站转变了思路
    1. 更新应该是每天来的
    2. 但是排行榜并不每天更新
    3. 排行榜最开始有 100 个内容, 现在只有 20 个
  5. 结果
    1. 不定期更新, 导致每次更新内容可能会很多
    2. 如果多于 20 个, 可能会导致我丢内容
  6. 我的目的
    1. 能够不漏地获取到网站更新的电子书

3. 思路

  1. 电子书的更新 url, 是有规律的, 里面的变量, 是一个 int
    1. 这个可以通过 循环 来帮助生成
  2. 因为不熟悉 爬虫, 所以只有使用 shell 来做
    1. curl 是个选择
  3. 获取的页面内容, 可以通过 grep 来过滤标题, 查看到底是什么书

4. 环境

  1. 操作系统
    1. windows 10
  2. shell
    1. git bash
  3. 建议
    1. 有条件最好用 linux

5. 问题

  1. 概述
    1. 执行中遇到了些小问题
  2. 思路
    1. 思路是先做单体, 再做循环
      1. 先使用 curl 来做
      2. 然后用 grep
      3. 最后 循环, 输出到文本文件
  3. 问题
    1. curl 乱码
      1. curl 下来的东西, 中文部分是乱码
    2. 尝试解决
      1. 调整 git bash 的编码
        1. 想法
          1. 可能是 curl 的结果, 和 git bash 的编码不一致
          2. 尝试调整成 gb2312 看看
        2. 结果
          1. curl 的东西可以看了
          2. 但是 文件系统 里, 之前正常显示的内容乱码了
        3. 结论
          1. curl 内容是 gb2312 的编码
          2. 本地文件系统, 是 utf8 的编码
          3. 两种编码不一致, 所以乱码了
          4. 这种调整 gitbash charset 的思路, 不可用
      2. 改变 curl 内容的编码
        1. 想法
          1. 不是 git bash 乱码
          2. 是 curl 内容乱码
          3. 如何改变 curl 结果的编码
        2. 确认编码
          1. 思路
            1. 是的, 之前的编码是猜的
            2. 但是, 编码是可以确认的
            3. 正确的思路, 是应该先确认
            4. shell 代码
              > curl <url> | grep -E 'charset' <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
        3. 转换
          1. 使用 iconv 工具
            1. 概述
              1. 一个转码的工具
              2. 简单使用, 不做详细介绍了
            2. 使用
              1. 命令

                # 1. 查看支持字符集> iconv -l# 2. 转换字符集## 1. 默认输出到屏幕## 2. -t 默认好像是 utf8> iconv -f 
                -t
                # 3. 支持管道> curl
                | iconv -f gb2312

5. 后续

  1. 后续就是过滤内容, 生成列表
    1. 这块也不难, 我就不讲了

6. 问题

  1. 思路的本质
    1. 感觉本质上, 这是个爬虫
    2. 如果会 爬虫, 工作会不会轻松很多
  2. 安全机制
    1. 我如果每天扫那个网站, 会不会触发安全机制
  3. curl 和 grep
    1. 好久不用, 感觉有点生疏
  4. 我过滤的内容, 最后都是带 html 标签的
    1. 据说这些工具, 可以去掉标签
      1. grep
      2. sed
      3. 只有下来研究了

7. ref

转载于:https://www.cnblogs.com/xy14/p/10669842.html

你可能感兴趣的文章
Scala的类和对象
查看>>
table相关的选择器 & children()与find()的区别 & 选择器eq(n)与nth-child(n)的差异
查看>>
Windows Azure Platform AppFabric
查看>>
springmvc常用注解标签详解
查看>>
Linux之ssh服务介绍
查看>>
Sql语句里的递归查询(转)
查看>>
[JAVA]《Java 核心技术》(一)
查看>>
libevent机制
查看>>
rabbit ip登录
查看>>
呼叫器
查看>>
Hadoop Archives
查看>>
.Net基础篇_学习笔记_第六天_for循环语法_正序输出和倒序输出
查看>>
Java 十进制和十六制之间的转化(负数的处理)
查看>>
反射那些事儿——Java动态装载和反射技术
查看>>
Hive中的日志
查看>>
Wingdings 2 符号编码对照表
查看>>
SVN的标准目录结构:trunk、branches、tags
查看>>
Initializing Spring root WebApplicationContext
查看>>
在线CSS圆角生成器
查看>>
Java基础知识总结--反射
查看>>