zoukankan      html  css  js  c++  java
  • python下载图片的问题思考

    最近用python下载图片的时候遇到了点问题,觉得很有趣。

    功能很简单就是用python的urllib2库下载网页中的图片到本地。

    网页上显示的图片是这样的:

    但是下载到本地后却变成了这样:

    这让我很奇怪,难道我下载的姿势不对。

    然后我就分析这两张照片的差别,先比对了大小:

    可以看到下载后的图片比原始图片多了 93 字节,看来是python在写入文件的时候偷偷加了东西。

    于是我用二进制比对工具进行比对,看看到底多了什么?

    下面是截取的一部分:

    可以看到多了 0D 这个字节,仔细分析会发现0D的后面就是 0A ,也就是 python 在写入文件的时候看到有0A就在前面补了个 0D ,多的这 93 个字节就是这么来的。如果熟悉ASCII码表的同学立即就会想到 0D 0A 就是“ ”,也就是程序在写入的时候把 0A 解析出来了。这样问题就很明显了,我在写入的时候没有把文件当成二进制来写入。

    handle = open(path, 'w')

    检查写入文件的部分代码果然是这样。

    当然问题很简单,但是我觉得思路很好。可能问题的表象很复杂,很奇怪,上层的语言封装很多,语法糖千奇百怪,但是如果能去分析它的本质,也许会更简单些。

  • 相关阅读:
    rails学习笔记(6)
    流程图好工具推荐JUDE
    流程图好工具推荐JUDE
    rails学习笔记(5)
    [转载 js]JsDoc Toolkit:Javascript文档利器
    ruby学习笔记(7)
    end_form_tag 已经在rails2.x中去掉了
    [转载 js]JsDoc Toolkit:Javascript文档利器
    rails学习笔记(5)
    ios 防止按钮快速点击造成多次响应的避免方法。
  • 原文地址:https://www.cnblogs.com/benjaming/p/8432590.html
Copyright © 2011-2022 走看看