最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何采集微信公眾號歷史消息頁

 更新時間:2017年12月04日 11:11:14   投稿:laozhang  
給大家講解了微信公眾號文章采集的入口歷史消息頁信息獲取方法,有需要的朋友參考一下本內容。

采集微信文章和采集網站內容一樣,都需要從一個列表頁開始。而微信文章的列表頁就是公眾號里的查看歷史消息頁?,F在網絡上的其它微信采集器有的是利用搜狗搜索,采集方式雖然簡單多了,但是內容不全。所以我們還是要從最標準最全面的公眾號歷史消息頁來采集。

因為微信的限制,我們能復制到的鏈接是不完整的,在瀏覽器中無法打開看到內容。所以我們需要通過上一篇文章介紹的方法,使用anyproxy獲取到一個完整的微信公眾號歷史消息頁面的鏈接地址。

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

前一篇文章提到過,biz參數是公眾號的ID,uin是用戶的ID,目前來看uin是在所有公眾號之間唯一的。其它兩個重要參數key和pass_ticket是微信客戶端補充上的參數。

所以在這個地址失效之前我們是可以通過瀏覽器查看原文的方法獲取到歷史消息的文章列表的,如果希望自動化分析內容,也可以制作一個程序,將這個帶有尚未失效的key和pass_ticket的鏈接地址提交進去,再通過例如php程序來獲取到文章列表。

最近有朋友跟我說他的采集目標就是單一的一個公眾號,我覺得這樣就沒必要用上一篇文章寫的批量采集的方法了。所以我們接下來看看歷史消息頁里面是怎樣獲取到文章列表的,通過分析文章列表,就可以得到這個公眾號所有的內容鏈接地址,然后再采集內容就可以了。

在anyproxy的web界面中如果證書配置正確,是可以顯示出https的內容的。web界面的地址是http://localhost:8002 其中l(wèi)ocalhost可以替換成自己的IP地址或域名。從列表中找到getmasssendmsg開頭的記錄,點擊之后右側就會顯示出這條記錄的詳情:

紅框部分就是完整的鏈接地址,將微信公眾平臺這個域名拼接在前面之后就可以在瀏覽器中打開了。

然后將頁面向下拉,到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版即將召開"
          },
         ...//循環(huán)被省略
        ],
        "source_url": "",
        "subtype": 9,
        "title": "謠言熱榜 | 十一月朋友圈十大謠言"
      },
      "comm_msg_info": {
        "content": "",
        "datetime": 1480933315,
        "fakeid": "3093134871",
        "id": 1000000010,
        "status": 2,
        "type": 49 //類型為49的時候是圖文消息
      }
    },
   ...//循環(huán)被省略
  ]
}

簡要的分析一下這個json(這里只介紹一些重要的信息,其它的被省略):

"list": [ //最外層的鍵名;只出現一次,所有內容都被它包含。
  {//這個大闊號之內是一條多圖文或單圖文消息,通俗的說就是一天的群發(fā)都在這里
    "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": "子內容標題"
        },
        ...//循環(huán)被省略
      ],
      "source_url": "閱讀原文的地址",
      "title": "頭條標題"
    },
    "comm_msg_info":{//圖文消息的基本信息
      "datetime": '發(fā)布時間,值為unix時間戳',
      "type": 49 //類型為49的時候是圖文消息
    }
  },
  ...//循環(huán)被省略
]

在這里還要提到一點就是如果希望獲取到時間更久遠一些的歷史消息內容,就需要在手機或模擬器中將頁面向下拉,當拉到最底下的時候,微信將自動讀取下一頁的內容。下一頁的鏈接地址和歷史消息頁的鏈接地址同樣是getmasssendmsg開頭的地址。但是內容就是只有json了,沒有html了。直接解析json就可以了。

這時可以通過上一篇文章介紹的方法,使用anyproxy將msgList變量值正則匹配出來之后,異步提交到服務器,再從服務器上使用php的json_decode解析json成為數組。然后遍歷循環(huán)數組。我們就可以得到每一篇文章的標題和鏈接地址。

如果只需要采集單一公眾號的內容,完全可以在每天群發(fā)之后,通過anyproxy獲取到完整的帶有key和pass_ticket的鏈接地址。然后自己制作一個程序,手動將地址提交給自己的程序。使用例如php這樣的語言來正則匹配到msgList,然后解析json。這樣就不用修改anyproxy的rule,也不需要制作一個采集隊列和跳轉頁面了。

相關文章

  • PHP Laravel中的Trait使用方法

    PHP Laravel中的Trait使用方法

    在本篇文章里小編給各位分享了關于PHP Laravel中的Trait使用方法和相關知識點,有需要的朋友們學習下。
    2019-01-01
  • yii2實現分頁,帶搜索的分頁功能示例

    yii2實現分頁,帶搜索的分頁功能示例

    本篇文章主要介紹了yii2實現分頁,帶搜索的分頁功能示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • php+redis實現多臺服務器內網存儲session并讀取示例

    php+redis實現多臺服務器內網存儲session并讀取示例

    這篇文章主要介紹了php+redis實現多臺服務器內網存儲session并讀取示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 使用phpunit進行接口自動化測試

    使用phpunit進行接口自動化測試

    下面小編就為大家分享一篇使用phpunit進行接口自動化測試,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • PHP多進程編程實例

    PHP多進程編程實例

    這篇文章主要介紹了PHP多進程編程實例,本文講解的是在Linux下實現PHP多進程編程,需要的朋友可以參考下
    2014-10-10
  • 微信小程序之支付后調用SDK的異步通知及驗證處理訂單方法

    微信小程序之支付后調用SDK的異步通知及驗證處理訂單方法

    下面小編就為大家分享一篇微信小程序之支付后調用SDK的異步通知及驗證處理訂單方法,具有很好的參考價值,希望對大家有所幫助
    2018-01-01
  • php解壓文件代碼實現php在線解壓

    php解壓文件代碼實現php在線解壓

    這篇文章主要介紹了php解壓文件代碼,根據這個代碼可以實現php在線解壓功能,需要的朋友可以參考下
    2014-02-02
  • ThinkPHP實現分頁功能

    ThinkPHP實現分頁功能

    這篇文章主要為大家詳細介紹了ThinkPHP實現分頁功能的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • PHP后端銀聯支付及退款實例代碼

    PHP后端銀聯支付及退款實例代碼

    本篇文章主要介紹了PHP后端銀聯支付及退款實例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • PHP、Python和Javascript的裝飾器模式對比

    PHP、Python和Javascript的裝飾器模式對比

    這篇文章主要介紹了PHP、Python和Javascript的裝飾器模式對比,修飾模式(Decorator Pattern),又叫裝飾者模式,是面向對象編程領域中,一種動態(tài)地往一個類中添加新的行為的設計模式,需要的朋友可以參考下
    2015-02-02

最新評論

司法| 张家口市| 定陶县| 彰化市| 肇庆市| 冀州市| 新乡市| 中山市| 陇西县| 武邑县| 上饶市| 调兵山市| 阳谷县| 鹿邑县| 灌阳县| 旬阳县| 涞源县| 栾城县| 安庆市| 根河市| 门源| 临潭县| 荔波县| 琼结县| 镇巴县| 绥德县| 邵东县| 景东| 饶阳县| 宣威市| 呼和浩特市| 云龙县| 凤凰县| 健康| 项城市| 霸州市| 汤阴县| 平罗县| 鹿泉市| 许昌市| 阳西县|