请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

新浪微博登录代码改造

你好,bobby新浪微博的登录验证码改了,网上的这个是基于python2.7的,这里改造怎么报错了?

2.7代码

import StringIO

im0 = Image.open(StringIO.StringIO(browser.get_screenshot_as_png()))

改造后代码

from io import StringIO
im0 = Image.open(StringIO.read(browser.get_screenshot_as_png().decode('ascii')))


报错

File "D:/python/splider/ArticleSplider/ArticleSplider/login.py", line 48, in getType
    im0 = Image.open(StringIO.read(browser.get_screenshot_as_png().decode('ascii')))
UnicodeDecodeError: 'ascii' codec can't decode byte 0x89 in position 0: ordinal not in range(128)


可是的源码用的就是asciiencode的为啥decode会出错

def get_screenshot_as_png(self):
   """
   Gets the screenshot of the current window as a binary data.

   :Usage:
       driver.get_screenshot_as_png()
   """
   return base64.b64decode(self.get_screenshot_as_base64().encode('ascii'))

正在回答 回答被采纳积分+3

3回答

提问者 慕粉2044261042 2017-06-08 09:55:44

 不是utf8encode的应该不是这么解码的吧,如果有必要我提供下源码给您看下

0 回复 有任何疑惑可以回复我~
提问者 慕粉2044261042 2017-06-08 09:54:39

老师,还是一样的报错,

im0 = Image.open(StringIO.read(browser.get_screenshot_as_png().decode('utf8')))


UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte

0 回复 有任何疑惑可以回复我~
  • bobby #1
    你把url地址给我  我这里调试看看
    回复 有任何疑惑可以回复我~ 2017-06-09 09:46:57
bobby 2017-06-08 09:38:27

亲 这个是python的字符编码问题 你把decode ascii改为用utf8编码decode试试呢

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号