吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4037|回复: 18
收起左侧

[Python 转载] 【Python】-[初学笔记]-用Pushover推送微博热搜到手机

[复制链接]
surepj 发表于 2022-2-24 19:19
用re找到微博热搜内容条目,
再转换成一个整体内容,
通过pushover提供的api接口发起推送
当然手机上也要安装pushover。
就会收到消息推送了。

[Python] 纯文本查看 复制代码
import time
import requests
import re

url = 'https://s.weibo.com/top/summary?cate=realtimehot'

headers = {
    'User-Agent': 'Chrome/96.0.4664.45 Safari/537.36','Cookie': 'SUB=_',
    'Referer': 'https://s.weibo.com/'} 
resp = requests.get(url,headers=headers)
page_content = resp.text.encode('gbk','ignore').decode('gbk')  # 解决某些网站好多编码不能解析的问题
resp.close()

obj = re.compile(r'<td class="td-01 ranktop">(?P<rank>.*?)</td>.*?'
                 r'<a href="(?P<herf>.*?)" target="_blank">(?P<title>.*?)'
                 r'</a>.*?<span>(?P<hotness>.*?)</span>',re.S)
result = obj.finditer(page_content)
count = 0
weibo_list = []
for it in result:
    if count < 20:  # 控制推送条数
        weibo_list.append(f"{it.group('rank')}.{it.group('title')}")
        count += 1

push_url = 'https://api.pushover.net/1/messages.json'
# 在https://pushover.net 注册账户就会有user码,再创建个Application就有了token
# 手机也装个Pushover就能就收到消息了
message = str(weibo_list).replace('[','').replace(']','').replace("'",'').replace(',','\n')
data = {
    "token":"xxxx", # 用自己的token
    "user":"xxxx", # 用自己的user码
    "title":f"微博热搜-{time.localtime()[1]}月{time.localtime()[2]}日", # 推送的标题
    "message":message, # 推送的内容
    "sound":"tugboat" # 推送的提示音类型 
}

resp = requests.post(push_url,data=data)
print('推送成功' if resp.json()['status']==1 else '推送失败')


免费评分

参与人数 4吾爱币 +10 热心值 +3 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zlc54333 + 1 + 1 用心讨论,共获提升!
只有午安 + 1 + 1 用企业微信推送,就不用收费了
我不是鸹貔 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| surepj 发表于 2022-5-15 09:24
poor567 发表于 2022-5-15 08:42
https://s.weibo.com/top/summary?cate=socialevent

我是这样想的,如果每一个网页的抓取方式不同,那 ...

pushover倒不用改什么,改一下提取要闻那个列表文字就可以。

代码这样:
[Python] 纯文本查看 复制代码
import time
import requests
from lxml import etree

url = 'https://s.weibo.com/top/summary?cate=socialevent'

headers = {
    'User-Agent': 'Chrome/96.0.4664.45 Safari/537.36', 'Cookie': 'SUB=_',
    'Referer': 'https://s.weibo.com/'}
resp = requests.get(url, headers=headers)
page_content = resp.text.encode('gbk', 'ignore').decode('gbk')  # 解决某些网站好多编码不能解析的问题

tree = etree.HTML(page_content)
title_list = tree.xpath('//*[@id="pl_top_realtimehot"]/table//tr/td[2]/a/text()')
count = 0
weibo_list = []
for title in title_list:
    if count < 20:  # 控制推送条数
        # print(title)
        weibo_list.append(title.strip('#'))
        count += 1

push_url = 'https://api.pushover.net/1/messages.json'
# # 在[url]https://pushover.net[/url] 注册账户就会有user码,再创建个Application就有了token
# # 手机也装个Pushover就能就收到消息了
message = str(weibo_list).strip('[]').strip("'").replace("', '",'\n')
# print(message)
data = {
    "token": "xxxx",  # 用自己的token
    "user": "xxxx",  # 用自己的user码
    "title": f"微博要闻-{time.localtime()[1]}月{time.localtime()[2]}日",  # 推送的标题
    "message": message,  # 推送的内容
    "sound": "tugboat"  # 推送的提示音类型
}

resp = requests.post(push_url, data=data)
print('推送成功' if resp.json()['status'] == 1 else '推送失败')
poor567 发表于 2022-5-15 08:42
本帖最后由 poor567 于 2022-5-15 08:46 编辑
surepj 发表于 2022-5-14 21:29
不同的网页的内容抓取方式不太一样,这个只作用于微博热搜,微博要闻是什么网址呢?

https://s.weibo.com/top/summary?cate=socialevent

我是这样想的,如果每一个网页的抓取方式不同,那么pushover的应用范围就要难上不少呀
elviss 发表于 2022-2-24 20:57
 楼主| surepj 发表于 2022-2-24 21:02

是的。但微博热搜里有个商业推广,和置顶的用xpath不好去掉。
师大帅哥 发表于 2022-2-24 22:32
Pushover只能试用30天,太拉了,有没有类似的推送服务,app端的
wuyouai 发表于 2022-2-24 23:03
我也打算学py了
Mrstick 发表于 2022-2-25 00:00
这就去414
亮少 发表于 2022-2-25 07:09
学到了,
dachairen 发表于 2022-2-25 08:11

准备学习py了,没有javascript基础可行
 楼主| surepj 发表于 2022-2-25 08:30
师大帅哥 发表于 2022-2-24 22:32
Pushover只能试用30天,太拉了,有没有类似的推送服务,app端的

是啊,付费的话30元。要么就只能重新用邮箱注册个账号
 楼主| surepj 发表于 2022-2-25 08:32
dachairen 发表于 2022-2-25 08:11
准备学习py了,没有javascript基础可行

我也是学着玩的小白,没有任何编程基础
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表