源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python发腾讯微博代码分享

  • 时间:2022-11-12 18:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python发腾讯微博代码分享
[u]复制代码[/u] 代码如下:
import urllib.parse,os.path,time,sys,re,urllib.request from http.client import HTTPSConnection from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtWebKitWidgets import * from PyQt5.QtNetwork import * #path ospath=sys.path[0] if len(ospath)!=3:     ospath+='\\' ospath=ospath.replace('\\','/') #api class Api:     def getOpenid(self,token):         url="https://graph.qq.com/oauth2.0/me?access_token=%s" % token         u=urllib.request.urlopen(url)         data=u.read()         try:             data=data.decode('utf-8')         except:             data=data.decode('gbk')         openid=re.findall('"openid":"(.+?)"',data)[0]         return openid     def qq(self,token,status,pic):         fSize=os.path.getsize(pic)         BOUNDARY="$-img-lufei-goodboy-$"         CRLF='\r\n'         data=[             '--'+BOUNDARY,             'Content-Disposition: form-data; name="access_token"',             '',             token,             '--'+BOUNDARY,             'Content-Disposition: form-data; name="openid"',             '',             self.getOpenid(token),             '--'+BOUNDARY,             'Content-Disposition: form-data; name="oauth_consumer_key"',             '',             '100451446',             #status             '--'+BOUNDARY,             'Content-Disposition: form-data; name="content"',             '',             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('graph.qq.com')         h.putrequest('POST','/t/add_pic_t')         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') #webview class WebView(QWebView):     token=None     def __init__(self):         super().__init__()         self.resize(800,500)         self.setWindowFlags(Qt.FramelessWindowHint|Qt.X11BypassWindowManagerHint|Qt.Tool)         self.cookieJar=QNetworkCookieJar()         self.page().networkAccessManager().setCookieJar(self.cookieJar)         url="https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=%s&redirect_uri=%s&state=%s" % ('100451446','http://lufei.fboat.net/api/qq.php','---I---Love---You---')         self.load(QUrl(url))         #sigal         self.loadProgress.connect(self.judge)     def judge(self):         url=re.findall(r"'(.+?)'",str(self.url()))[0]         if url=='http://lufei.fboat.net/':             for x in self.cookieJar.allCookies():                 if x.domain()=='lufei.fboat.net' and x.name()=='token':                     self.token=re.findall("'(.+?)'",str(x.value()))[0]             self.close() #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,login         self.line=QLineEdit()         brows=QPushButton('打开')         brows.clicked.connect(self.getFileName)         submit=QPushButton('发表')         submit.clicked.connect(self.submit)         login=QPushButton('登录')         login.clicked.connect(self.view)         #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,1)         layout.addWidget(login,2,1,1,1)         #set         self.setLayout(layout)     def getFileName(self):         fileName=QFileDialog.getOpenFileName()         self.line.setText(fileName[0])     def view(self):         webView.show()     def submit(self):         status=self.editor.toPlainText()         pic=self.line.text()         self.editor.setText(api.qq(webView.token,status,pic)) app=QApplication(sys.argv) webView=WebView() api=Api() dialog=Dialog() dialog.show() app.exec_()
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部