ホームページ  >  記事  >  バックエンド開発  >  WeChatパブリックアカウントの履歴メッセージページを収集する方法の詳細な説明

WeChatパブリックアカウントの履歴メッセージページを収集する方法の詳細な説明

jacklove
jackloveオリジナル
2018-07-07 17:48:283611ブラウズ

WeChatの公開アカウント記事から収集した入力履歴メッセージページの情報を取得する方法を説明しますので、困っている友人は参考にしてください。

WeChat の記事の収集は Web サイトのコンテンツの収集と同じであり、リスト ページから始める必要があります。 WeChat記事一覧ページは、公式アカウント内の閲覧履歴メッセージページです。現在、インターネット上の他の多くの WeChat 収集者は Sogou を使用して検索を行っており、収集方法ははるかに簡単ですが、内容は不完全です。したがって、最も標準的で包括的なパブリック アカウント履歴メッセージ ページから情報を収集する必要があります。

WeChat の制限により、コピーできるリンクは不完全であるため、ブラウザーで開いてコンテンツを表示することはできません。したがって、anyproxy を使用して、前の記事で紹介した方法で完全な WeChat パブリック アカウント履歴メッセージ ページのリンク アドレスを取得する必要があります。

http://mp.weixin.qq.com/mp/getmasssendmsg?__biz=MjM5NDAwMTA2MA==&uin=NzM4MTk1ODgx&key=bf9387c4d02682e186a298a18276d8e0555e3ab51d81ca46de339e6082eb767343 bef6 10edd80c9e1bfda66c2b62751511f7cc091a33a029709e94f0d1604e11220fc099a27b2e2d29db75cc0849d4bf&devicetype=android-17&version=26031c34&lang=zh_CN&nettype=WIFI&as cene=3&pass_tic ket=Iox5ZdpRhrSxGYEeopVJwTBP7kZj51GYyEL24AT5Zyx+BoEMdPDBtOun1F /9ENSz&wx_header =1

前回の記事でも触れましたが、bizパラメータは公式アカウントのID、uinはユーザーのIDで、現時点ではuinは全公式アカウントの中で一意です。他の 2 つの重要なパラメーター key と pass_ticket は、WeChat クライアントの補足パラメーターです。

ということで、このアドレスの有効期限が切れる前に、ブラウザで原文を閲覧することで過去のメッセージの記事一覧を取得することができ、内容を自動解析したい場合には、このアドレスを追加するプログラムを作成することも可能です。有効期限が切れていないアドレス key と pass_ticket のリンクアドレスを送信し、php プログラムなどで記事一覧を取得します。

最近、友人が収集対象が単一の公開アカウントであると教えてくれたので、前の記事で書いた一括収集方法を使用する必要がなくなると思います。では、履歴メッセージページの記事一覧を取得する方法を見てみましょう 記事一覧を解析することで、この公式アカウントのコンテンツリンクアドレスをすべて取得し、コンテンツを収集することができます。

anyproxy Web インターフェイスで証明書が正しく構成されている場合は、https コンテンツを表示できます。 Web インターフェイスのアドレスは http://localhost:8002 です。localhost は独自の IP アドレスまたはドメイン名に置き換えることができます。リストから getmasssendmsg で始まるレコードを見つけてクリックすると、右側にこのレコードの詳細が表示されます:

赤枠部分が完全なリンクですWeChat public プラットフォームのドメイン名が前に結合されると、ブラウザで開くことができます。

次に、HTML コンテンツの最後までページをプルすると、過去のニュース記事のリストである json 変数が表示されます:

msgList の変数値をコピーし、json 整形ツールで分析すると、json が次の構造になっていることがわかります:

{
  "list": [
    {
      "app_msg_ext_info": {
        "author": "",
        "content": "",
        "content_url": "http://mp.weixin.qq.com/s?__biz=MzA5MzEzNDg3MQ==&mid=2652767427&idx=1&sn=37da0d7208283bf90e9a4a536e0af0ea&chksm=8b882dbbbcffa4ad2f0b8a141cc988d16bace564274018e68e5c53ee6f354f8ad56c9b98bade&scene=4#wechat_redirect",
        "copyright_stat": 100,
        "cover": "http://mmbiz.qpic.cn/mmbiz/MofBAcBsJ6X0xGrQ2XK5yQjzwb2eswxkRNBTgLtcqGziaFqwibzvtZAHCDkMeJU1fGZHpjoeibanPJ8rziaq68Akkg/0?wx_fmt=jpeg",
        "digest": "擦亮双眼,远离谣言。",
        "fileid": 505283695,
        "is_multi": 1,
        "multi_app_msg_item_list": [
          {
            "author": "",
            "content": "",
            "content_url": "http://mp.weixin.qq.com/s?__biz=MzA5MzEzNDg3MQ==&mid=2652767427&idx=2&sn=449ef1a874a37fed2429e14f724b56ef&chksm=8b882dbbbcffa4ade48a7932cda4263687e34fca8ea3a5a6233d2589d448b9f6130d3890ce93&scene=4#wechat_redirect",
            "copyright_stat": 100,
            "cover": "http://mmbiz.qpic.cn/mmbiz_png/MofBAcBsJ6XyaIn0qEDSSicBUBZbMYHYrhibia89ZnksCsUiaia2TLI1fyqjclibGa1hw3icP6oXeSpaWMjiabaghHl7yw/0?wx_fmt=png",
            "digest": "12月28日,广州亚运城综合体育馆,内附购票入口~",
            "fileid": 0,
            "source_url": "http://wechat.show.wepiao.com/detail/ff764b0731b7465db03b56b998e1f2b8?detailReferrer=1&from=groupmessage&isappinstalled=0",
            "title": "2017微信公开课Pro版即将召开"
          },
         ...//循环被省略
        ],
        "source_url": "",
        "subtype": 9,
        "title": "谣言热榜 | 十一月朋友圈十大谣言"
      },
      "comm_msg_info": {
        "content": "",
        "datetime": 1480933315,
        "fakeid": "3093134871",
        "id": 1000000010,
        "status": 2,
        "type": 49 //类型为49的时候是图文消息
      }
    },
   ...//循环被省略
  ]
}

簡単に分析するこの JSON (ここではいくつかの重要な情報のみが紹介されており、その他は省略されています):

"list": [ //最外层的键名;只出现一次,所有内容都被它包含。
  {//这个大阔号之内是一条多图文或单图文消息,通俗的说就是一天的群发都在这里
    "app_msg_ext_info":{//图文消息的扩展信息
      "content_url": "图文消息的链接地址",
      "cover": "封面图片",
      "digest": "摘要",
      "is_multi": "是否多图文,值为1和0",
      "multi_app_msg_item_list": [//这里面包含的是从第二条开始的图文消息,如果is_multi=0,这里将为空
        {
          "content_url": "图文消息的链接地址",
          "cover": "封面图片",
          "digest": ""摘要"",
          "source_url": "阅读原文的地址",
          "title": "子内容标题"
        },
        ...//循环被省略
      ],
      "source_url": "阅读原文的地址",
      "title": "头条标题"
    },
    "comm_msg_info":{//图文消息的基本信息
      "datetime": '发布时间,值为unix时间戳',
      "type": 49 //类型为49的时候是图文消息
    }
  },
  ...//循环被省略
]

ここでもう 1 つ言及しておきたいのは、コンテンツを取得したい場合古いメッセージの履歴を表示するには、携帯電話またはシミュレーターでページを一番下までプルする必要があります。ページを一番下までプルすると、WeChat が自動的に次のページの内容を読み上げます。次ページのリンクアドレス、履歴メッセージページのリンクアドレスもgetmasssendmsgで始まるアドレスとなる。ただし、コンテンツは HTML ではなく json のみです。 json を直接解析するだけです。

この時点で、前の記事で紹介した方法を使用して、anyproxy を使用して msgList 変数の値を定期的に照合し、非同期でサーバーに送信し、サーバーから php の json_decode を使用して json を解析することができます。配列に入れます。次に、配列をループします。各記事のタイトルとリンクアドレスを取得できます。

単一の公開アカウントのコンテンツのみを収集する必要がある場合は、毎日一括送信した後、anyproxy を介してキーと pass_ticket を含む完全なリンク アドレスを取得できます。次に、自分でプログラムを作成し、プログラムにアドレスを手動で送信します。 php などの言語を使用して定期的に msgList と照合し、json を解析します。この方法では、anyproxy のルールを変更する必要はなく、コレクション キューやジャンプ ページを作成する必要もありません。

関連する推奨事項:

PHP で基数ソートを実装する方法の説明

PHP が依存関係挿入ベースの自動実装を行う方法リフレクション メカニズムについての説明

PHP 変数と変数の動的文字列挿入の詳細な説明

以上がWeChatパブリックアカウントの履歴メッセージページを収集する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。