QQ微博开放平台的python封装

本文介绍了一个使用Python实现的QQ微博开放平台接口封装,仅需一个文件即可包含所有接口。通过简单的实例展示了如何初始化应用、获取访问令牌、添加微博等操作。

原文地址:http://darkbull.net/opensource/bdb/python_qq_weibo_sdk/

       玩应用开发,就用python写了一个QQ微博开放平台的封装,就一个文件,包括了文档中所描述的所有接口,非常简单。可以在这里下载:http://code.google.com/p/python-qweibo。简单的调用例子:

import webbrowser
import qweibo
 
qweibo.init(app_key, app_secret) # 只需初始化一次
 

# 获取access token
token = qweibo.OAuthToken.get_request_token()
webbrowser.open(token.get_authorize_url())
verifier = raw_input("Input the verifier: ").strip() 
token.set_verifier(verifier)  # web应用可以把token保存在session中以便多次调用接口


# 添加微博
qweibo.t.add(token, content = u'既然使用python,请不要再用java,c#之流的思想来写代码。要知道多敲几下键盘不但花费时间,也增加出错机会。')
 
### 如何用 Python 实现爬取微博热搜列表并通过 QQ 发送消息 要完成这一目标,可以分为两个主要部分:一是通过 Python 爬取微博热搜数据;二是利用 Python 编写脚本将这些数据发送至指定的 QQ 用户。 #### 一、爬取微博热搜数据 可以通过 `requests` 和 `BeautifulSoup` 库来抓取微博热搜页面的数据。以下是具体的实现方法: 1. **设置 HTTP 请求头** 使用自定义的 User-Agent 来模拟浏览器访问微博网站[^3]。 2. **解析 HTML 数据** 获取到网页内容后,使用 BeautifulSoup 解析其中的热搜条目信息。 ```python import requests from bs4 import BeautifulSoup def get_hot_search_list(): url = "https://weibo.com/ajax/side/hotSearch" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36", } response = requests.get(url, headers=headers) if response.status_code == 200: data = response.json() hot_searches = [] for item in data['data']['realtime']: title = item['note'] link = f"https://s.weibo.com/weibo?q={title}" hot_searches.append({"title": title, "link": link}) return hot_searches return None ``` 此函数会返回一个包含热搜词条及其链接的字典列表。 --- #### 二、通过 QQ 发送消息 目前无法直接通过官方 API 将消息推送到个人用户的 QQ 账号中,但有几种替代方案可供选择: 1. **借助第三方服务(如企业微信机器人或邮件通知)间接推送** 可以先将消息发送给绑定邮箱,再由用户自行查看或者配置客户端自动转发到 QQ[^1]。 2. **使用酷Q或其他插件开发环境** 如果希望真正实现在本地运行的服务端向特定好友账号传递即时通讯内容,则需安装支持二次开发功能的应用程序实例化对象,并调用其内部接口完成操作[^2]。 下面展示的是基于 SMTP 协议发送电子邮件的方式作为提醒机制之一的例子代码片段: ```python import smtplib from email.mime.text import MIMEText from email.header import Header def send_email(subject, content, to_addr): from_addr = 'your_email@example.com' password = 'your_password' # 授权码而非登录密码 smtp_server = 'smtp.example.com' msg = MIMEText(content, 'plain', 'utf-8') msg['From'] = Header(from_addr) msg['To'] = Header(to_addr) msg['Subject'] = Header(subject) try: server = smtplib.SMTP_SSL(smtp_server, 465) server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) print("Email sent successfully!") except Exception as e: print(f"Failed to send email: {e}") finally: server.quit() if __name__ == "__main__": hot_searches = get_hot_search_list() message = "\n".join([f"{item['title']} - {item['link']}" for item in hot_searches]) subject = "今日微博热搜榜单" recipient = "recipient@qq.com" send_email(subject=subject, content=message, to_addr=recipient) ``` 上述脚本实现了从网络获取热点新闻摘要并封装成纯文本形式附带超链接地址最后经由SMTP协议投递给预设收件箱账户的功能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值