Python通过私信消息提取博主的赠书活动地址

news2024/11/18 1:49:10

文章目录

  • 前言
  • 背景
  • 设计
  • 开发
    • 1.引入模块
    • 2.获取私信内容
    • 3.根据文本提取url的方法
    • 4.获取包含‘书’的url
    • 5.程序入口
  • 效果
  • 总结
  • 最后

前言

博主空空star
主页空空star的主页

大家好,我是空空star,本篇给大家分享一下《通过私信消息提取博主的赠书活动地址》

背景

关注的博主中有一些赠书活动私信,如何从大量私信中提取出来我们想参与赠书活动的博客地址。

设计

  1. 获取私信列表;
  2. 提取内容包含‘书’的私信内容;
  3. 从内容中提取url。

开发

1.引入模块

import pprint
import re
import requests

2.获取私信内容

获取每个用户最新一条私信内容

def get_msg(username,usertoken,page):
    url = f'https://msg.csdn.net/v1/im/query/historySession3?page={page}&pageSize=40'
    headers = {
         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763',
         'Cookie': f'UserName={username}; UserToken={usertoken};'
    }
    res = requests.get(url, headers=headers)
    return res.json()

3.根据文本提取url的方法

def get_urls(text):
    urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', text)
    return urls

4.获取包含‘书’的url

def get_about_book(msg):
    about_book_list = []
    datas = msg['data']
    for data in datas:
        if '书' in data['content']:
            username = data['username']
            nickname = data['nickname']
            content = data['content'].replace('\n', '')
            urls = get_urls(content)
            msg_dict = {
                'username': username,
                'nickname': nickname,
                'content': content,
                'urls': urls
            }
            about_book_list.append(msg_dict)
    return about_book_list

5.程序入口

if __name__ == '__main__':
	# 遍历前3页的私信消息
    for page in range(1, 4):
        msg = get_msg('你的username', '你的usertoken', page)
        about_book_list = get_about_book(msg)
        print(f'第{page}页的赠书活动:')
        pprint.pprint(about_book_list)

效果

第1页的赠书活动:
[{‘content’: ‘『赠书活动 | 第十三期』《算力经济:从超级计算到云计算》http://t.csdn.cn/p2xwU’,
‘nickname’: ‘wei_shuo’,
‘urls’: [‘http://t.csdn.cn/p2xwU’],
‘username’: ‘weixin_62765017’},
{‘content’: ‘算力经济:从超级计算到云计算——(文末送书)http://t.csdn.cn/NfTcw本期赠书三本:《算力经济:从超级计算到云计算》获得方式:高质量的评论+赞数的前两名各获得一本!评论区随机挑选一位好兄弟送书一本!截止时间:6月29日—7月1日中午12时公布时间:7月1日下午1点’,
‘nickname’: ‘网络豆’,
‘urls’: [‘http://t.csdn.cn/NfTcw’],
‘username’: ‘yj11290301’},
{‘content’: ‘三连文章抽3人送人工智能书,AI学习之路分享:https://blog.csdn.net/m0_63947499/article/details/131371175’,
‘nickname’: ‘陈橘又青’,
‘urls’: [‘https://blog.csdn.net/m0_63947499/article/details/131371175’],
‘username’: ‘m0_63947499’},
{‘content’: ‘【派森送书-第二十六期】《企业性能测试》送书5人http://t.csdn.cn/IVIB9上方文章链接进去点赞收藏,评论区留言“人生苦短,拒绝内卷!”每人最多评论三次!大数据分析新文《基于LightGBM算法构建公司破产预测模型》https://blog.csdn.net/m0_64336780/article/details/131343629,期待家人们的三连支持!评论区回访!’,
‘nickname’: ‘艾派森’,
‘urls’: [‘http://t.csdn.cn/IVIB9’,
‘https://blog.csdn.net/m0_64336780/article/details/131343629’],
‘username’: ‘m0_64336780’}]

总结

最后

如果您不知道如何支持我,
InsCode AI列了一些支持博主的句子供您参考:

博主写的文章很有深度,收获了很多知识。
博主的写作风格幽默风趣。
博主勇于分享自己的经验和教训,让初学者从中受益匪浅。
博主的思想独到,文章读起来让人格外振奋。
博主为人很好,乐于助人,回复读者的问题也非常及时。
博主的专业知识非常全面,无论是哪个领域的问题都能给出详细的解答。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/700207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通用策略04丨ORB魔改框架+自适应动量过滤模板

量化策略开发,高质量社群,交易思路分享等相关内容 大家好,今天我们分享2023年度第4期通用策略——ORB魔改框架自适应动量过滤模板。 本期策略是2023年通用系列第4篇。本期主要内容有对ORB原版的逻辑魔改,其次我们将跨日周期均线过…

现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

停机迁移方案 最 low 的方案,就是很简单,大家伙儿凌晨 12 点开始运维,网站或者 app 挂 个公告,说 0 点到早上 6 点进行运维,无法访问。 接着到 0 点停机,系统停掉,没有流量写入了,…

设计一个高流量高并发的系统需要关注哪些点

1、设计原则 1.1、系统设计原则 在设计一个系统之前,我们先要有一个统一且清晰的认知:不要想着一下就能设计出完美的系统,好的系统是迭代出来的。不要复杂化,要先解决核心问题。但是要有先行的规划,对现有的问题有方…

字符与代表数据的转化

目的 在与设备交互当中,大都以十六进制的数进行交互。 而显示给用户时,是以字符的形式显示。 这中间就需要字符与其所代表的数值的转化,比如: ‘0F’---->0x0F 这怎么实现呢,一个是字符,另一个是数字&a…

Apache seatunnel集群部署

跳转到安装目录 cd /opt/soft/seatunnel 1.设置环境变量 export SEATUNNEL_HOME/opt/soft/seatunnel export PATH$PATH:$SEATUNNEL_HOME/bin 启动服务端 ./bin/seatunnel-cluster.sh -d 启动客户端 ./bin/seatunnel.sh --config ./config/kafka2gbase_udf.conf 这样就启…

Vue3 数字滚动插件 vue-countup-v3

文章目录 介绍效果安装属性事件配置项完整样例 介绍 vue-countup-v3 插件是一个基于 Vue3 的数字动画插件,用于在网站或应用程序中创建带有数字动画效果的计数器。通过该插件,我们可以轻松地实现数字的递增或递减动画,并自定义其样式和动画效…

软件测试职业发展的7个阶段,哪个都吃香!

首先谈谈我在软件测试行业的亲身经历:我的一位同事曾经很认真地问过我一个问题,他说他现在从事软件测试工作已经4年了,但是他不知道现在的工作和自己在工作3年时有什么不同,他想旁观者清,也许我能回答他的问题。此外他…

手写vue-diff算法(一)

Vue初始化流程 1.Vue流程图 Vue流程图: Vue的初始化流程,默认会创建一个Vue实例,执行初始化、挂载、模板编译操作,模板被编译成为render函数;在render函数初始化时会执行取值操作,从而进入getter方法对当…

【科研入门】会议、期刊、出版社、文献数据库、引文数据库、SCI分区、影响因子等基础科研必备知识

大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! 本文目录 一、会议与期刊二、如何辨别是否…

【UE5 Cesium】07-Cesium for Unreal 从一个地点飞行到另一个地点(下)

UE版本:5.1 介绍 本文以在基督城(新西兰)和悉尼(澳大利亚)这两个城市间为例,在上一篇文章(【UE5 Cesium】06-Cesium for Unreal 从一个地点飞行到另一个地点(上)&#…

vant-weapp源码解析---Tab标签页

这个标签栏,属于一个很常见的组件,一般我不用这个组件,自己手写一个scroll-view以及样式,更加轻便。但是我写的最简单的标签页没有滚动效果,以及选中标签动画效果。因此根据标签栏滚动学习下,并且自己手写一…

动态规划的入门

https://www.bilibili.com/video/BV13Q4y197Wg/ 动态规划解题步骤 —— carl 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由…

Postman 最被低估的功能,自动化接口测试效率简直无敌!

目录 该篇文章针对已经掌握 Postman 基本用法的读者,即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求的操作。 接口结果判断 功能区 脚本相关 代码模板 集合(批量)测试 批量执行 变化的参数数据 请求依赖问题 接口执行顺序 数据传递 解决依…

系统出错。发生系统错误 1067。进程意外终止。

问题描述 使用管理员cmd,任务管理器均无法启动mysql。 报错提示信息:系统出错。发生系统错误 1067。进程意外终止。 错误排查 1.检查3306端口是否被占用 在cmd输入netstat -aon|findstr 3306,结果如下: 如果你发现是端口被占用…

OpenAI 又赢麻了谷歌 DeepMind 创始人刚称 Gemini 能碾压 GPT-4

整理 | 褚杏娟,核子可乐 谷歌在上个月的开发者大会上公布了一系列 AI 新项目,当时首次亮相的 Gemini 曾受到不少嘲讽。但近日,DeepMind 联合创始人兼 CEO Demis Hassabis 自曝,工程师们正在使用 AlphaGo 的技术来开发 Gemini&…

Java框架之spring 的 AOP 和 IOC

写在前面 本文一起看下spring aop 和 IOC相关的内容。 1:spring bean核心原理 1.1:spring bean的生命周期 spring bean生命周期,参考下图: 我们来一步步的看下。 1 其中1构造函数就是执行类的构造函数完成对象的创建&#x…

【Java】Java核心 79:Git 教程(2)Git 安装

文章目录 目标内容总结 上一篇我们讲到:Git是一个分布式版本控制系统,常用于协同开发和版本管理的工具。它可以跟踪文件的修改、记录历史版本,并支持多人协同工作。通过Git,你可以轻松地创建和切换分支、合并代码、回滚修改等操作…

Kicad编译

Windows 1.安装visual studio Pro 2019 以上版本,建议2022,自行破解,安装时一定要勾选上cmake工具;安装Git bash 2.去Gitlab上fork kicad的master分支到自己的gitlab仓库上,在本地创建kicad-source路径,初…

【debug】:安装mmcv-full==1.2.4包过程报错

【debug】:安装mmcv-full1.2.4包过程报错This error originates from a subprocess, and is likely not a problem with pip WARNING: Ignoring invalid distribution -illow (d:\anaconda3\envs\pytorch\lib\site-packages) 这是由于安装包过程中曾经出现问题,会影…

生成特定相关系数的变量

本文转载自根据相关性生成变量 已知一组变量a,想要生成另一组变量b,要求a与b之间相关性为c。 实现思路如下: 设固定变量为x1,随机变量x2,相关系数为rho。x1与x2之间的相关性可以转化为向量之间的夹角问题,…