复制代码代码如下:

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

spath=sys.path[0]

if len(ospath)!=3:

ospath+='\\'

spath=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')

penid=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_()

QQ空间 搜狐微博 人人网 开心网 百度搜藏更多

Tags: 代码

复制链接收藏本文打印本文关闭本文返回首页

上一篇:python实现2014火车票查询代码分享

下一篇:windows下wxPython开发环境安装与配置方法

相关文章

2014-01-01python抓取豆瓣图片并自动保存示例学习

2014-02-02python时间整形转标准格式的示例分享

2014-01-01使用cx_freeze把python打包exe示例

2013-03-03python 字符串格式化代码

2009-04-04Python 自动安装 Rising 杀毒软件

2014-03-03利用打码兔和超人打码自封装的打码类分享

2014-02-02python 多进程通信模块的简单实现

2013-02-02centos下更新Python版本的步骤

2013-02-02使用python检测手机QQ在线状态的脚本代码

2014-02-02go和python调用其它程序并得到程序输出

文章评论

最 近 更 新

Python学习笔记(一)(基础入门之环境搭建

Python实现同时兼容老版和新版Socket协议

Python函数学习笔记

python基础教程之实现石头剪刀布游戏示例

win7 下搭建sublime的python开发环境的配

python基础教程之数字处理(math)模块详解

python3.3使用tkinter开发猜数字游戏示例

python使用os模块的os.walk遍历文件夹示例

python中关于时间和日期函数的常用计算总

python 中的列表解析和生成表达式

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

电脑代码python_python发 代码分享 -电脑资料相关推荐

  1. 电脑怎么录制屏幕?分享电脑录制屏幕的3个方法

    电脑怎么录制屏幕?平时我们在使用手机和电脑的时候,或多或少都有录制屏幕的需求,比如录制自己在游戏里的高难度操作.录制某些软件使用技巧等等.其实对于手机的录屏功能,想必大部分人都是知道的,这里就不做过多 ...

  2. 全排列代码python_python全排列代码,求解释

    匿名用户 1级 2016-03-18 回答 this performs the same function as itertools.permutations for i in range(len(l ...

  3. 电脑优化及精品软件分享

    电脑优化及精品软件分享 电脑刚买来时就像一张白纸,然后我们不断地在这张白纸上刻画.对于好的艺术家(有好的习惯的人)来说,可以使手中工具(电脑),行云流水(流畅运行).而对于相反的人来说(习惯不好的人来 ...

  4. 人机猜拳代码python_python 实现人和电脑猜拳的示例代码

    完成人机猜拳互动游戏的开发,用户通过控制台输入实现出拳,电脑通过程序中的随机数实现出拳,每一局结束后都要输出结果.当用户输入n时停止游戏,并输出总结果. import random all = ['石 ...

  5. 电脑识别指令和代码的原理

    电脑识别指令和代码的原理 一.前言 电脑代bai码,就du是让电脑执行的命令.可以让电脑执行相应zhi的命令.就电脑本身底层代码所言就dao是0和1,或者说二进制码.十六进制等等.还有汇编.C.C++ ...

  6. python代码直接关机_python实现电脑自动关机

    0.前言 在以前读书的时候,实验室里面要求每天都要关电脑,有时候出去玩得晚了,懒得回实验室关电脑,又没有同学帮忙.于是就想,能不能通过什么手段实现远程关闭电脑.在网上搜索一番后,决定用 python ...

  7. 电脑清理代码_网络安全宣传周丨电脑中病毒,这样处置!

    网络安全宣传周丨电脑中病毒,这样处置! 相信电脑病毒是每一位电脑用户所苦恼的东西,而且很多用户不清楚电脑病毒的清理方法,在这里小编就为大家分享几种清理电脑病毒的小技巧. 01 安全模式或者DOS模式下 ...

  8. 常见计算机蓝屏代码,码住!常见电脑蓝屏代码和解决方法

    原标题:码住!常见电脑蓝屏代码和解决方法 电脑蓝屏是很多人都碰到过的突发情况,引起电脑蓝屏的原因有很多,在软件方面,可能是因为个别软件或者驱动导致的,也可能是电脑中了病毒或者操作系统损坏等原因, 硬件 ...

  9. 机械革命极光Pro电脑开启出现英文代码无法启动怎么办?

    机械革命极光Pro电脑开启出现英文代码无法启动怎么办?有的小伙伴在使用机械革命极光Pro电脑的时候,正常开启电脑却无法进入到桌面中,而是显示一些英文错误提示.遇到这个问题是我们的系统故障了,可以通过U ...

最新文章

  1. SQL Server 行列转换(2)
  2. git在项目中的实际运用
  3. Hibernate 笔记1
  4. hibernate----N-1(一)
  5. Hibernate使用的一些细节注意事项
  6. java设置user.dir_使用java系统属性user.dir读取配置文件
  7. 【转载】C# 中的各种命名规范
  8. python调用通达信函数用户指标_通达信自定义指标调用
  9. CSV 文件打开乱码?如何批量解决 CSV 文件乱码问题
  10. android 卡片消息,安卓QNotified 支持xml卡片QQ消息 - 陌路人博客
  11. 体检预约系统软件测试计划书,体检中心-管理软件需求分析.doc
  12. file xxx from install of xxx conflicts with file from xxx
  13. Leetcode 每日一题——845. 数组中的最长山脉
  14. 河北省级环保督察回头看全覆盖 大气污染问题成举报重点
  15. 关于Palantir -第五部分:浏览器应用
  16. 笔记本计算机在桌面显示器,解决办法:笔记本电脑如何关闭屏幕,但仍可以使用?...
  17. 基于Java毕业设计智慧茶园综合管理系统源码+系统+mysql+lw文档+部署软件
  18. JS 遍历对象 jQuery遍历对象
  19. 【JavaScript】VUE前端实现微信版录制音频wav格式转化成mp3格式和Base64
  20. 小米java面试题_小米java社招面试题分享,面经(一面二面)

热门文章

  1. 2021绥化高考成绩查询,绥化中考成绩查询2021
  2. 学长前辈的美少女手办,够买一平厕所的不。。。
  3. 外贸笔记-AQL抽样标准
  4. 【数据库原理】关系数据库理论(一)
  5. Linux As4 u4 oracle10R2 安装
  6. HENKAKU!PSV(Vita)编程小白探索笔记(零)
  7. 第十七节:两片联级74HC595驱动16个LED灯的基本驱动程序
  8. Python 将JSON格式文件进行数据可视化制作世界人口地图
  9. 一个简易二维Minecraft——MBC
  10. Android24 怎么添加整体布局背景,更新安卓10可用设置valerie透明主题美化详细教程(2020.2.24)...