Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > Python多媒体

python使用新浪微博api上传图片到微博示例

来源:中文源码网    浏览:218 次    日期:2024-04-13 09:26:19
【下载文档:  python使用新浪微博api上传图片到微博示例.txt 】


python使用新浪微博api上传图片到微博示例
复制代码 代码如下:import urllib.parse,os.path,time,sysfrom http.client import HTTPSConnectionfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *
#pathospath=sys.path[0]if len(ospath)!=3: ospath+='\\'ospath=ospath.replace('\\','/')
#apiclass Api: def sina(self,status,pic): fSize=os.path.getsize(pic) BOUNDARY="$-img-lufei-goodboy-$" CRLF='\r\n' 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='\r\n--'+BOUNDARY+'--\r\n' 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()#uiclass 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_()

相关内容