Python はプライベート メッセージを通じてブロガーの書籍寄付活動のアドレスを抽出します

序文

ブロガー 空の星
ホームページ エンプティスターのホームページ

みなさん、こんにちは。私はコンコンスターです。この記事を皆さんにシェアします《通过私信消息提取博主的赠书活动地址》

バックグラウンド

フォローしているブロガーの中には書籍の寄付活動に関するプライベートメッセージがいくつかありますが、大量のプライベートメッセージの中から書籍の寄付活動に参加したいブログアドレスを抽出する方法を教えてください。

デザイン

  1. プライベートメッセージリストを取得します。
  2. 「book」を含むプライベート メッセージの内容を抽出します。
  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.「book」を含む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': '「書籍寄贈活動|第13回」「コンピューティングパワーエコノミー:スーパーコンピューティングからクラウドコンピューティングへ」 http://t.csdn.cn/p2xwU', '
nickname' : 'wei_shuo',
'urls': ['http://t.csdn.cn/p2xwU'],
'username': 'weixin_62765017'},
{'content': 'コンピューティングの電力経済性: スーパーコンピューティングからクラウド コンピューティングへ— —(記事末尾に書籍) http://t.csdn.cn/NfTcw 今号では3冊の書籍をプレゼント:『Computing Power Economy: From Supercomputing to Cloud Computing』 入手方法:質の高いコメント+いいね!上位2名にはそれぞれ1枚ずつプレゼント!コメント欄で仲の良いお兄さんをランダムに選んで本をプレゼント!締切: 6月29日~7月1日正午 発表時間: 7月1日午後1時'、'
ニックネーム': 'Network Bean'、
'urls': ['http://t.csdn. cn/NfTcw '],
'username': 'yj11290301'},
{'content': '3 つの連続記事で 3 人が人工知能の本、AI 学習のロードシェアリングを送信します: https://blog.csdn.net/m0_63947499/article/details /131371175'、
'ニックネーム': 'チェン オレンジとグリーン'、
'URL': ['https://blog.csdn.net/m0_63947499/article/details/131371175']、
'ユーザー名': 'm0_63947499 '}、
{'content': '[Payson 書籍配信 - 第 26 号] 「エンタープライズ パフォーマンス テスト」で 5 名に書籍を発送 http://t.csdn.cn/IVIB9 上記の記事へのリンク、「いいね!」、「収集」、「コメント」を残してくださいコメント欄にメッセージ「人生は短い、内向的になるのはやめよう!」 コメントは1人3回まで!ビッグデータ分析新着記事「LightGBMアルゴリズムに基づく企業倒産予測モデルの構築」https://blog.csdn.net/m0_64336780/article/details/131343629, ご家族様の3連続サポートお待ちしております!コメント欄をもう一度見てください!'、
'ニックネーム': 'Apex'、
'URL': ['http://t.csdn.cn/IVIB9'、'https://blog.csdn.net/m0_64336780/article/details/131343629
' ]、
'ユーザー名': 'm0_64336780'}]

要約する

やっと

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

ブロガーが書いた記事は非常に詳細であり、多くの知識が得られます。
このブロガーはユーモアと機知に富んだ文体を持っています。
ブロガーは自分の経験や教訓を共有する勇気を持っており、これは初心者にとって大きなメリットとなります。
ブロガーさんの考え方がユニークで、特に読んでいてワクワクする記事です。
ブロガーはとても親切で親切で、読者の質問にタイムリーに答えてくれます。
ブロガーの専門知識は非常に包括的で、どの分野の質問にも詳しく答えることができます。

おすすめ

転載: blog.csdn.net/weixin_38093452/article/details/131460564