文章目录
前言
博主 | 空空star |
---|---|
主页 | 空空star的主页 |
背景
设计
- 获取私信列表;
- 提取内容包含‘书’的私信内容;
- 从内容中提取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)
效果

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