Python extrai o endereço de atividade de doação de livro do blogueiro por meio de mensagens privadas

prefácio

blogueiro estrela vazia
pagina inicial página inicial da estrela vazia

Olá a todos, sou a estrela de Kongkong e vou compartilhar este artigo com vocês 《通过私信消息提取博主的赠书活动地址》.

fundo

Existem algumas mensagens privadas de atividades de doação de livros entre os blogueiros que seguem. Como extrair os endereços do blog que desejamos participar das atividades de doação de livros de um grande número de mensagens privadas.

projeto

  1. Obter lista de mensagens privadas;
  2. Extraia o conteúdo de mensagens privadas contendo 'livro';
  3. Extraia url do conteúdo.

desenvolver

1. Módulo de importação

import pprint
import re
import requests

2. Obtenha o conteúdo da mensagem privada

Obtenha o conteúdo mais recente da mensagem privada de cada usuário

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. Método de extração de URL com base no texto

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. Obtenha o URL contendo 'livro'

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. Entrada do programa

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)

Efeito

Atividade de doação de livros na página 1:
[{'content': '"Atividade de doação de livros|A décima terceira edição" "Economia de energia computacional: da supercomputação à computação em nuvem" http://t.csdn.cn/p2xwU', '
apelido' : 'wei_shuo',
'urls': ['http://t.csdn.cn/p2xwU'],
'username': 'weixin_62765017'},
{'content': 'Economia de energia computacional: da supercomputação à computação em nuvem— —(Livro no final do artigo) http://t.csdn.cn/NfTcw Três livros são distribuídos nesta edição: "Computing Power Economy: From Supercomputing to Cloud Computing" Método de obtenção: comentários de alta qualidade + curtidas Os dois primeiros receberão uma cópia cada um! Selecione aleatoriamente um bom irmão na área de comentários para enviar um livro! Prazo final: 29 de junho - 1º de julho às 12h Horário do anúncio: 1º de julho às 13h', '
apelido': 'Network Bean',
'urls': ['http://t.csdn.cn/NfTcw
' ]
. /131371175',
'apelido': 'Chen laranja e verde',
'urls': ['https://blog.csdn.net/m0_63947499/article/details/131371175'],
'nome de usuário': 'm0_63947499 '},
{'content': '[Payson Book Delivery - Issue No. 26] "Enterprise Performance Test" enviou livros para 5 pessoas http://t.csdn.cn/IVIB9 Link para o artigo acima, curta e colete, e deixe um mensagem na área de comentários" A vida é curta, recuse-se a ser introvertido!" Cada pessoa pode comentar até três vezes! Novo artigo de análise de big data "Construindo um modelo de previsão de falência de empresa com base no algoritmo LightGBM" https://blog.csdn.net/m0_64336780/article/details/131343629, aguardando o apoio de três membros da família consecutivos! Revisite a área de comentários! ',
'apelido': 'Apex',
'urls': ['http://t.csdn.cn/IVIB9',
'https://blog.csdn.net/m0_64336780/article/details/131343629'],
'nome de usuário': 'm0_64336780'}]

Resumir

afinal

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

O artigo escrito pelo blogueiro é muito aprofundado e trouxe muito conhecimento.
O blogueiro tem um estilo de escrita bem-humorado e espirituoso.
Os blogueiros têm coragem de compartilhar suas experiências e lições, o que beneficia muito os iniciantes.
Os pensamentos do blogueiro são únicos e os artigos são particularmente interessantes de ler.
O blogueiro é muito legal, prestativo e responde às perguntas dos leitores em tempo hábil.
O conhecimento profissional do blogueiro é muito abrangente e ele pode dar respostas detalhadas a perguntas em qualquer área.

Acho que você gosta

Origin blog.csdn.net/weixin_38093452/article/details/131460564
Recomendado
Clasificación