Maison  >  Article  >  développement back-end  >  Explication détaillée sur la façon de collecter les pages de messages historiques des comptes publics WeChat

Explication détaillée sur la façon de collecter les pages de messages historiques des comptes publics WeChat

jacklove
jackloveoriginal
2018-07-07 17:48:283630parcourir

Je vais vous expliquer comment obtenir des informations sur la page des messages d'historique des entrées collectées à partir des articles du compte public WeChat. Les amis dans le besoin peuvent se référer à ce contenu.

La collecte d'articles WeChat revient à collecter le contenu d'un site Web. Vous devez commencer à partir d'une page de liste. La page de liste des articles WeChat est la page des messages d'historique de visualisation dans le compte officiel. De nombreux autres collecteurs WeChat sur Internet utilisent désormais Sogou pour effectuer des recherches. Bien que la méthode de collecte soit beaucoup plus simple, le contenu est incomplet. Par conséquent, nous devons toujours les collecter à partir de la page de messages d’historique des comptes publics la plus standard et la plus complète.

En raison des limitations de WeChat, le lien que nous pouvons copier est incomplet et ne peut pas être ouvert dans le navigateur pour voir le contenu. Par conséquent, nous devons utiliser n'importe quel proxy pour obtenir l'adresse du lien d'une page complète de message historique du compte public WeChat via la méthode présentée dans l'article précédent.

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

Comme mentionné dans l'article précédent, le paramètre biz est l'ID du compte officiel et uin est l'ID de l'utilisateur. À l'heure actuelle, uin est unique parmi tous les comptes officiels. Les deux autres paramètres importants key et pass_ticket sont des paramètres supplémentaires sur le client WeChat.

Ainsi, avant l'expiration de cette adresse, nous pouvons obtenir la liste des articles des messages historiques en visualisant le texte original avec un navigateur. Si nous voulons analyser automatiquement le contenu, nous pouvons également créer un programme pour ajouter cette adresse avec. l'adresse qui n'a pas encore expiré. Soumettez l'adresse du lien key et pass_ticket, puis obtenez la liste des articles via un programme php, par exemple.

Récemment, un ami m'a dit que sa cible de collecte est un seul compte public. Je pense que cela rend inutile l'utilisation de la méthode de collecte par lots écrite dans l'article précédent. Voyons donc comment obtenir la liste des articles dans la page des messages historiques. En analysant la liste des articles, nous pouvons obtenir toutes les adresses de liens de contenu de ce compte officiel, puis collecter le contenu.

Si le certificat est correctement configuré dans l'interface Web anyproxy, le contenu https peut être affiché. L'adresse de l'interface Web est http://localhost:8002, où localhost peut être remplacé par votre propre adresse IP ou nom de domaine. Recherchez l'enregistrement commençant par getmasssendmsg dans la liste. Après avoir cliqué dessus, les détails de cet enregistrement seront affichés sur le côté droit :

La partie encadré rouge est le lien complet. et le public WeChat. Une fois le nom de domaine de la plateforme épissé devant, il peut être ouvert dans le navigateur.

Déroulez ensuite la page jusqu'à la fin du contenu html. Nous pouvons voir une variable json qui est une liste d'articles d'actualité historiques :

<.>Nous copions la valeur de la variable msgList et l'analysons avec l'outil de formatage json. Nous pouvons voir que le json a la structure suivante :

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

. Analysez brièvement ce json (seules certaines informations importantes sont introduites ici, d'autres sont omises) :

"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": &#39;发布时间,值为unix时间戳&#39;,
      "type": 49 //类型为49的时候是图文消息
    }
  },
  ...//循环被省略
]

Il convient également de le mentionner ici. Un point est que si Si vous souhaitez obtenir le contenu des messages historiques plus anciens, vous devez dérouler la page sur votre téléphone mobile ou votre simulateur. Lorsque vous la tirez vers le bas, WeChat lira automatiquement le contenu de la page suivante. L'adresse du lien de la page suivante et l'adresse du lien de la page du message historique sont également des adresses commençant par getmasssendmsg. Mais le contenu est uniquement en JSON, pas en HTML. Analysez simplement json directement.

À ce stade, vous pouvez utiliser la méthode présentée dans l'article précédent pour utiliser anyproxy pour faire correspondre régulièrement la valeur de la variable msgList, la soumettre au serveur de manière asynchrone, puis utiliser le json_decode de php du serveur pour analyser le json. dans un tableau. Ensuite, parcourez le tableau. Nous pouvons obtenir le titre et l’adresse du lien de chaque article.

Si vous n'avez besoin que de collecter le contenu d'un seul compte public, vous pouvez obtenir l'adresse complète du lien avec la clé et le pass_ticket via n'importe quel proxy après un envoi massif quotidien. Créez ensuite vous-même un programme et soumettez manuellement l'adresse à votre programme. Utilisez un langage tel que php pour faire correspondre régulièrement msgList, puis analysez json. De cette façon, il n'est pas nécessaire de modifier les règles d'un proxy, ni de créer une file d'attente de collecte ni de sauter une page.

Recommandations associées :

Explication de la façon d'implémenter le tri de base en PHP

Comment implémenter l'injection automatique de dépendances en PHP basé sur le mécanisme de réflexion Explication

PHP explication détaillée en cours des variables et insertion dynamique de chaînes de variables

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn