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

前言

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

背景

设计

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

开发

1.引入模块

import pprint
import re
import requests

2.获取私信内容

获取每个用户最新一条私信内容
def get_msg(username,usertoken,page):
    url = fhttps://msg..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: fUserName={
            
     username}; UserToken={
            
     usertoken};
    }
    res = requests.get(url, headers=headers)
    return res.json()

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

def get_urls(text):
    urls = re.findall(rhttp[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(
, )
            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)

效果

总结

最后

如果您不知道如何支持我,
InsCode AI列了一些支持博主的句子供您参考:
博主写的文章很有深度,收获了很多知识。 博主的写作风格幽默风趣。 博主勇于分享自己的经验和教训,让初学者从中受益匪浅。 博主的思想独到,文章读起来让人格外振奋。 博主为人很好,乐于助人,回复读者的问题也非常及时。 博主的专业知识非常全面,无论是哪个领域的问题都能给出详细的解答。
经验分享 程序员 微信小程序 职场和发展