Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung zum Sammeln historischer Nachrichtenseiten offizieller WeChat-Konten

Ausführliche Erklärung zum Sammeln historischer Nachrichtenseiten offizieller WeChat-Konten

jacklove
jackloveOriginal
2018-07-07 17:48:283611Durchsuche

Ich erkläre Ihnen, wie Sie Informationen auf der Seite mit den Nachrichten zum Eingangsverlauf erhalten, die aus Artikeln des öffentlichen WeChat-Kontos stammen. Freunde in Not können auf diesen Inhalt verweisen.

Das Sammeln von WeChat-Artikeln ist dasselbe wie das Sammeln von Website-Inhalten. Sie müssen von einer Listenseite aus beginnen. Die Listenseite der WeChat-Artikel ist die Seite zum Anzeigen des Nachrichtenverlaufs im offiziellen Konto. Viele andere WeChat-Sammler im Internet verwenden Sogou zum Suchen. Obwohl die Erfassungsmethode viel einfacher ist, ist der Inhalt unvollständig. Daher müssen wir sie immer noch von der Standard- und umfassendsten Nachrichtenseite zum Verlauf des öffentlichen Kontos sammeln.

Aufgrund der Einschränkungen von WeChat ist der Link, den wir kopieren können, unvollständig und kann nicht im Browser geöffnet werden, um den Inhalt anzuzeigen. Daher müssen wir anyproxy verwenden, um die Linkadresse einer vollständigen historischen Nachrichtenseite des öffentlichen WeChat-Kontos über die im vorherigen Artikel vorgestellte Methode abzurufen.

http://mp.weixin.qq.com/mp/getmasssendmsg?__biz=MjM5NDAwMTA2MA==&uin=NzM4MTk1ODgx&key=bf9387c4d02682e186a298a18276d8e0555e3ab51d81ca46de339e608 2eb767343bef610edd80c9e1bfda66c2b62751511f7cc091a33a029709e94f0d1604e11220f c099a27b2e2d29db75cc0849d4bf&devicetype=android-17&version=26031c34&lang=zh_ CN&nettype=WIFI&ascene=3&pass_ticket=Iox5ZdpRhrSxGYEeopVJwTBP7kZj51GYyEL24AT5Zyx% 2BBoEMdPDBtOun1F%2F9ENSz&wx_header =1

Wie im vorherigen Artikel erwähnt, ist der biz-Parameter die ID des offiziellen Kontos und uin die ID des Benutzers. Derzeit ist uin unter allen offiziellen Konten eindeutig. Die anderen beiden wichtigen Parameter key und pass_ticket sind ergänzende Parameter auf dem WeChat-Client.

Bevor diese Adresse abläuft, können wir die Artikelliste der historischen Nachrichten abrufen, indem wir den Originaltext mit einem Browser anzeigen. Wenn wir den Inhalt automatisch analysieren möchten, können wir auch ein Programm erstellen, mit dem wir diese Adresse hinzufügen können die Adresse, die noch nicht abgelaufen ist. Senden Sie die Linkadresse von key und pass_ticket und rufen Sie dann die Artikelliste beispielsweise über ein PHP-Programm ab.

Kürzlich erzählte mir ein Freund, dass sein Sammlungsziel ein einzelnes öffentliches Konto sei. Ich denke, dass es unnötig ist, die im vorherigen Artikel beschriebene Stapelsammlungsmethode zu verwenden. Schauen wir uns also an, wie wir die Artikelliste auf der Seite mit den historischen Nachrichten erhalten. Durch die Analyse der Artikelliste können wir alle Inhaltslinkadressen dieses öffentlichen Kontos abrufen und dann den Inhalt sammeln.

Wenn das Zertifikat im Anyproxy-Webinterface korrekt konfiguriert ist, können https-Inhalte angezeigt werden. Die Adresse der Weboberfläche lautet http://localhost:8002, wobei localhost durch Ihre eigene IP-Adresse oder Ihren Domänennamen ersetzt werden kann. Suchen Sie den Datensatz, der mit getmasssendmsg beginnt, in der Liste. Nachdem Sie darauf geklickt haben, werden die Details dieses Datensatzes auf der rechten Seite angezeigt:

Der rote Kastenteil ist der vollständige Link Adresse und die WeChat-Öffentlichkeit Nachdem der Domänenname der Plattform vorne eingefügt wurde, kann er im Browser geöffnet werden.

Ziehen Sie dann die Seite bis zum Ende des HTML-Inhalts. Wir können eine JSON-Variable sehen, die eine Liste historischer Nachrichtenartikel ist:

Wir kopieren den Variablenwert von msgList und analysieren ihn mit dem JSON-Formatierungstool. Wir können sehen, dass der JSON die folgende Struktur hat:

{
  "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的时候是图文消息
      }
    },
   ...//循环被省略
  ]
}

Kurz analysieren dieser JSON (hier werden nur einige wichtige Informationen vorgestellt, andere werden weggelassen):

"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的时候是图文消息
    }
  },
  ...//循环被省略
]

Eine weitere Sache, die hier erwähnt werden sollte, ist, dass Sie den Inhalt erhalten möchten Bei älteren Nachrichten müssen Sie die Seite auf Ihrem Mobiltelefon oder Simulator nach unten ziehen. Wenn Sie sie nach unten ziehen, liest WeChat automatisch den Inhalt der nächsten Seite. Die Linkadresse der nächsten Seite und die Linkadresse der historischen Nachrichtenseite sind ebenfalls Adressen, die mit getmasssendmsg beginnen. Der Inhalt ist jedoch nur JSON, nicht HTML. Analysieren Sie JSON einfach direkt.

Zu diesem Zeitpunkt können Sie die im vorherigen Artikel eingeführte Methode verwenden, um Anyproxy zu verwenden, um den Wert der msgList-Variablen regelmäßig abzugleichen, ihn asynchron an den Server zu senden und dann den json_decode von PHP vom Server zu verwenden, um den JSON zu analysieren in ein Array. Dann durchlaufen Sie das Array. Wir können den Titel und die Linkadresse jedes Artikels erhalten.

Wenn Sie nur den Inhalt eines einzigen öffentlichen Kontos sammeln müssen, können Sie nach täglichem Massenversand die vollständige Linkadresse mit Schlüssel und pass_ticket über anyproxy erhalten. Erstellen Sie dann selbst ein Programm und übermitteln Sie die Adresse manuell an Ihr Programm. Verwenden Sie eine Sprache wie PHP, um msgList regelmäßig abzugleichen und dann JSON zu analysieren. Auf diese Weise müssen die Regeln von Anyproxy nicht geändert werden, und es ist nicht erforderlich, eine Sammlungswarteschlange und eine Sprungseite zu erstellen.

Verwandte Empfehlungen:

Erklärung, wie man die Radix-Sortierung in PHP implementiert

Wie man die automatische Abhängigkeitsinjektion in PHP implementiert basierend auf dem Reflexionsmechanismus Erklärung

PHP fortlaufend-detaillierte Erklärung von Variablen und dynamisches String-Einfügen von Variablen

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Sammeln historischer Nachrichtenseiten offizieller WeChat-Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn