您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页使用新浪微博图床

使用新浪微博图床

来源:二三四教育网

首先感谢新浪微博提供的免费图床(对外链无限制),以及吊炸天的cdn图片加速服务,从此妈妈再也不用担心我的图床不能用了.

图床原理:

使用新浪微博账号登陆

进入到发微博的界面:

点击下方的上传图片按钮,并上传本地图片,上传成功后,会在下方出现一张预览图,打开控制台找到这张图片的url,这就是新浪图床的url.

不需要发布微博,图片只要上传就会存在于图床中

在获取到cookie后,就可以使用cookie上传图片,代码如下:

def request_image_url(image_path):
    cookie = cookielib.MozillaCookieJar()
    cookie.load(cookie_file, ignore_expires=True, ignore_discard=True)
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
    image_url = 
    b = base64.b64encode(file(image_path).read())
    data = urllib.urlencode({'b64_data': b})
    result = opener.open(image_url, data).read()
    result = re.sub(r"<meta.*</script>", "", result)
    image_result = json.loads(result)
    image_id = image_result.get('data').get('pics').get('pic_1').get('pid')
    return  % image_id


def get_image(image_path):
    url = ''
    try:
        url = request_image_url(image_path)
    except:
        try:
            username = raw_input("输入新浪微博用户名:")
            password = raw_input("输入新浪微博密码:")
            nonce, pubkey, servertime, rsakv = pre_login()
            form_data = generate_form_data(nonce, pubkey, servertime, rsakv, username, password)
            login(form_data)
            url = request_image_url(image_path)
        except:
            print "登录失败,程序退出"
            exit()
    return url


if __name__ == '__main__':
    print get_image('/home/q/hexo/blog/source/img/angular-remove-table-item.jpg')

代码运行结果如下:

/usr/bin/python2.7 /home/q/hexo/blog/weibo_util.py
输入新浪微博用户名: yourusername
输入新浪微博密码:yourpassword

输出就是新浪图床的地址.换成你的本地文件来试一试吧.

完整的代码包括了模拟新浪微博登陆,保存cookie,上传本地图片到新浪微博图床并获取图床地址.

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务