Document 在这里:
点击(此处)折叠或打开
- https://pillow.readthedocs.io/en/5.0.0/
当然今天并不是说pillow,而是我在使用pillow的过程中需要从网上download 一些图片文件,我从image.baidu.com 搜索kitten的来找到了一个没有版权字样的照片地址如下:
点击(此处)折叠或打开
- https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1516187273001&di=878dce25579dac6338524319d784e880&imgtype=0&src=http%3A%2F%2Fi2.hdslb.com%2Fbfs%2Farchive%2Fa63066020082f2d69c45140b66718cc8cb37f8c4.jpg
使用我常用的curl命令来下载:
点击(此处)折叠或打开
- curl -o kitten.jpg -k -L https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1516187273001&di=878dce25579dac6338524319d784e880&imgtype=0&src=http%3A%2F%2Fi2.hdslb.com%2Fbfs%2Farchive%2Fa63066020082f2d69c45140b66718cc8cb37f8c4.jpg
然后使用python代码来打开:
点击(此处)折叠或打开
- def show_jpg():
- kitten=Image.open('kitten.jpg')
- kitten.show()
- show_jpg()
但是我发现这不是我想要下载的图啊,哪里出问题了:
我记得curl 有个-v (--verbose)的 选项,来看看
点击(此处)折叠或打开
- * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
- * ALPN, server accepted to use http/1.1
- * Server certificate:
- * subject: C=CN; ST=beijing; L=beijing; OU=service operation department; O=Beijing Baidu Netcom Science Technology Co., Ltd; CN=baidu.com
- * start date: Jun 29 05:32:07 2017 GMT
- * expire date: Apr 25 05:31:02 2018 GMT
- * issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign Organization Validation CA - SHA256 - G2
- * SSL certificate verify ok.
- } [5 bytes data]
- > GET /timg?image HTTP/1.1
- > Host: timgsa.baidu.com
- > User-Agent: curl/7.55.1
- > Accept: */*
- >
略去上面SSL的那部分,看GET /timg?image ,明白了什么, &在命令结尾会使shell把这fork出的进程放在后台运行. 仔细看看url里面有多个&,需要用引号把 url 给引住。
在来看看正确的命令和输出.
点击(此处)折叠或打开
- curl -o kitten2.jpg -k -v -L "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1516187273001&di=878dce25579dac6338524319d784e880&imgtype=0&src=http%3A%2F%2Fi2.hdslb.com%2Fbfs%2Farchive%2Fa63066020082f2d69c45140b66718cc8cb37f8c4.jpg"
点击(此处)折叠或打开
- * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
- * ALPN, server accepted to use http/1.1
- * Server certificate:
- * subject: C=CN; ST=beijing; L=beijing; OU=service operation department; O=Beijing Baidu Netcom Science Technology Co., Ltd; CN=baidu.com
- * start date: Jun 29 05:32:07 2017 GMT
- * expire date: Apr 25 05:31:02 2018 GMT
- * issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign Organization Validation CA - SHA256 - G2
- * SSL certificate verify ok.
- } [5 bytes data]
- > GET /timg?image&quality=80&size=b9999_10000&sec=1516187273001&di=878dce25579dac6338524319d784e880&imgtype=0&src=http%3A%2F%2Fi2.hdslb.com%2Fbfs%2Farchive%2Fa63066020082f2d69c45140b66718cc8cb37f8c4.jpg HTTP/1.1
- > Host: timgsa.baidu.com
- > User-Agent: curl/7.55.1
- > Accept: */*
- >
GET后面这么长的地址都带过来了,这就对了。
比较这两次下载的文件,第二次下载的文件明显要大的多.
点击(此处)折叠或打开
- file kitten.jpg
- kitten.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, baseline, precision 8, 200x200, frames 3
- file kitten2.jpg
- kitten2.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, baseline, precision 8, 720x450, frames 3
今天真是碰到了个教训,忘记了url里面的&在shell里面需要escape.
不过还是重新翻了下curl的-v (--versbose)这一参数
If you think this option still doesn't give you enough details, consider using --trace or --trace-ascii instead.