手机
当前位置:查字典教程网 >脚本专栏 >python >python使用新浪微博api上传图片到微博示例
python使用新浪微博api上传图片到微博示例
摘要:复制代码代码如下:importurllib.parse,os.path,time,sysfromhttp.clientimportHTTPS...

复制代码 代码如下:

import urllib.parse,os.path,time,sys

from http.client import HTTPSConnection

from PyQt5.QtCore import *

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

#path

ospath=sys.path[0]

if len(ospath)!=3:

ospath+=''

ospath=ospath.replace('','/')

#api

class Api:

def sina(self,status,pic):

fSize=os.path.getsize(pic)

BOUNDARY="$-img-lufei-goodboy-$"

CRLF='rn'

data=[

#token

'--'+BOUNDARY,

'Content-disposition: form-data; name="access_token"',

'',

'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',#你的access_token

#status

'--'+BOUNDARY,

'Content-disposition: form-data; name="status"',

'',

status,

#pic

'--'+BOUNDARY,

'Content-disposition: form-data; name="pic"; filename="q_17.jpg"',

'Content-type: image/jpeg',

''

]

#utf-8

data=(CRLF.join(data)+CRLF).encode('utf-8')

closing='rn--'+BOUNDARY+'--rn'

sumlen=len(data)+len(closing)+fSize

#----------------------------------------

h=HTTPSConnection('upload.api.weibo.com')

h.putrequest('POST','/2/statuses/upload.json')

h.putheader('Content-type','multipart/form-data; boundary=%s' % BOUNDARY)

h.putheader('Content-length',sumlen)

h.endheaders()

h.send(data)

f=open(pic,'rb')

while True:

data=f.read(12345)

if not data:

break

h.send(data)

f.close()

h.send(closing.encode('utf-8'))

r=h.getresponse()

return r.read().decode('utf-8','ignore')

api=Api()

#ui

class Dialog(QDialog):

def __init__(self):

super().__init__()

#icon,title

self.setWindowIcon(QIcon(ospath+'weibo.ico'))

self.setWindowTitle('weibo')

#texteditor

self.editor=QTextEdit()

#textline,filebutton,submit

self.line=QLineEdit()

brows=QPushButton('打开')

brows.clicked.connect(self.getFileName)

submit=QPushButton('发表')

submit.clicked.connect(self.submit)

#layout

layout=QGridLayout()

layout.setContentsMargins(0,0,0,0)

#addwidget

layout.addWidget(self.editor,0,0,1,2)

layout.addWidget(self.line,1,0,1,1)

layout.addWidget(brows,1,1,1,1)

layout.addWidget(submit,2,0,1,2)

#set

self.setLayout(layout)

def getFileName(self):

fileName=QFileDialog.getOpenFileName()

self.line.setText(fileName[0])

def submit(self):

status=self.editor.toPlainText()

pic=self.line.text()

self.editor.setText(api.sina(status,pic))

app=QApplication(sys.argv)

dialog=Dialog()

dialog.show()

app.exec_()

【python使用新浪微博api上传图片到微博示例】相关文章:

Python yield使用方法示例

python装饰器使用方法实例

Python中使用动态变量名的方法

python使用reportlab画图示例(含中文汉字)

python获取糗百图片代码实例

python模拟新浪微博登陆功能(新浪微博爬虫)

python Django模板的使用方法(图文)

python 判断自定义对象类型

用Python写的图片蜘蛛人代码

python使用心得之获得github代码库列表

精品推荐
分类导航