python3.5 用socket提取图片报错,急!

问题描述

python3.5 用socket提取图片报错,急!

我在学习Python for Information 这本书,第12章是用socket去抓取一张网络图片,但是报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 246: invalid start byte

用python 2.7是可以正常用的,但是python3.5 在 这句报错

picture = picture + bytes.decode(data)

请大神指点下解决方法

import socket
import time

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('www.py4inf.com', 80))
s = 'GET http://www.py4inf.com/cover.jpg HTTP/1.0nn'
mysock.send(str.encode(s))

count = 0
picture = ''
while True:
    data = mysock.recv(5120)
    if (len(data) < 1):
        break
    #time.sleep(0.25)
    count = count + len(data)
    print(len(data), count)
    picture = picture + bytes.decode(data)
mysock.close()

# Look for the end of header
pos = picture.find('rnrn')
print('Header length', pos)
print(picture[:pos])

# Skip past the header and save the picture data
picture = picture[pos+4:]
fhand = open('stuff.jpg', 'wb')
fhand.write(picture)
fhand.close()

解决方案

PYTHON3以后,字符串默认就是unicode字符集了。不需要decode

解决方案二:

字符集出现问题,不过我也没用3.0.....

时间: 2024-10-05 15:52:42

python3.5 用socket提取图片报错,急!的相关文章

VB中使用lead控件加载jpg图片报错

问题描述 VB中使用lead控件加载jpg图片报错 调用LEAD1.BitmapDataPath = "111.jpg"时报错,换成111.bmp就没有问题,这种现象其他电脑没有,是什么问题 解决方案 这个不好说,你的图片没法解析,建议先转换成标准的位图格式再加载.

各位朋友好,请教ubuntu系统python3.4环境下安装matplotlib报错的解决办法

问题描述 各位朋友好,请教ubuntu系统python3.4环境下安装matplotlib报错的解决办法 具体的问题是这样的: 我的系统是Ubuntu14.04 的64位系统,python3.4版本下,想使用matplotlib来做图. 由于matplotlib依赖numpy和python的图像库PIL,因此我先安装numpy和PIL然后,再安装matplotlib, 这里附上我的安装matplotlib的shell命令 #安装科学计算库numpy sudo pip3 install numpy

android项目上客户端显示图片报错

问题描述 android项目上客户端显示图片报错 从sd卡上取图片,数据库存储图片的路径,客户端报:java.lang.NumberFormatException:Invalid int:"" 双引号内容是图片路径. 解决方案 互联网访问图片,在android客户端显示 解决方案二: 首先你要确认路径是否出错

php 下载中文图片报错问题

问题描述 php 下载中文图片报错问题 放在不同页面中运行他会报出下载的图片不存在的错误但是我的图片存在 英文的图片名可以但是中文的图片名就报文件不存在为什么?帮忙改正一下.... ShowPicture.php页面如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

imageview-异步任务加载图片报错

问题描述 异步任务加载图片报错 执行图片异步任务,学习连接: http://schimpf.es/asynctask-for-image-download/ 在代码中: ImageView im1 = (ImageView) findViewById(R.id.image); ImageDownloadTask imageD = new ImageDownloadTask(im1); imageD.execute(e.mediumLabel); 结果报出的错误: 06-19 15:22:23.4

c#-C#二进制转换为图片报错

问题描述 C#二进制转换为图片报错 System.IO.MemoryStream ms = new System.IO.MemoryStream(data.TP); Image img = Image.FromStream(ms); data.TP是二进制的图片调试的时候报参数无效. ((System.IO.Stream)(ms)).ReadTimeout引发了System.InvalidOperationException类型的异常 ((System.IO.Stream)(ms)).Write

java-用MySql插入图片报错!!r如何解决

问题描述 用MySql插入图片报错!!r如何解决 String sql="insert into image(tupian) values(?)"; Connection conn=null; PreparedStatement ps=null; try { conn=getConnection(); ps=(PreparedStatement) conn.prepareStatement(sql); ps.setBinaryStream(1, Thread.currentThread

Android端环信即时通讯发送图片报错402,上传到到服务器失败

问题描述 可以发送文本信息,发送图片报错.可能是什么原因? 解决方案 发送的图片会否超过了10M,还有没有其他的错误信息解决方案二:没有超过10M,打印出来的错误码是402  没有其他错误信息解决方案三:可以看下你发送图片的扩展消息体么 ?

页面jquery提示报错 急求大神解决

问题描述 页面jquery提示报错 急求大神解决 TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement. 解决方案 检查下jquery提交的代码,看看是否有未定义的变量. 相同问题参考:http://www.07net01.com/2015/08/902494.html 解决方案二: 页面中使用已经引入的jquery插件,结果却提示JS报错找不到函数[问题解决] 解决方