您的位置:首页 > 移动开发 > 微信开发

爬取微信公众号

2016-07-16 22:55 337 查看

1.抓取公众号历史记录

首先利用Fiddler4抓包,监听手机流量

.

手机电脑连接同一网络,手机需设置代理,服务器为电脑ip,端口号为8888,fiddler也需要设置,不会百度看看
点击手机公众号“查看历史消息”。注意fiddler抓的请求



第二个即为历史消息那个请求,查看他的request headers



请求中最重要的三个参数是biz、uin、key,biz相当于微信号ID,uin可能是自己微信的ID,这个参数不会变,key有时效性,时间并不是很长,有了这三个参数就可以构造请求,抓取第二个请求的URL,最主要的的是这三个参数,其他的可以不要       ##要实现自动化抓取的话,这三个参数得自动获得



分析抓取到的网页,不但有三个参数,分析msglist,即为历史消息,挨个读也能读得懂,找到content_url,抓取这个URL,即可以抓到文章内容

用搜狗搜索抓取参数(未果)

借助搜狗的微信平台,搜索公众号ID,点击打开链接,query参数为公众号,后面几个参数可以不用管,构造此请求,解析最新文章的URL,即可获得biz,

key分析不出来了-.-

在手机微信客户端将一公众号历史消息发给网页微信文件传输助手,审查页面元素,在历史消息所指向的url上面有一href链接,此链接为一跳转链接,可能会跳转到历史消息消息所指向的url,多发几个历史消息给网页微信,即可看出除了biz参数不一样外其他参数都一样,若能构造出这个请求可能会直接得到历史消息的页面,这几天尝试将谷歌浏览器改ua改成模仿微信客户端,不知道微信改版还是怎么回事没有预期效果,坑爹啊。。。

2.获取阅读数和点赞数

继续分析上次获得的页面,可以看到阅读readnum和likeNUM,但是却找不到数字



点开一篇文章,重新抓包分析



可以定位到这两个请求,先点开第3个,查看他的响应textview



可看到点赞数和阅读数,但是分析其请求参数时发现找不到title这个参数,而且需要key这参数(未解)

/mp/getappmsgext?__biz=MjM5NTM0Njg2MA==&appmsg_type=9&mid=2652731864&sn=fe96e0958f29221f1aa776a0521b2e8d&idx=1&scene=0&title=%E5%A4%B4%E6%9D%A1%20%7C%20%E5%90%93%E5%B0%BF%E4%BA%86%EF%BC%81%E7%AF%AE%E7%90%83%E5%8F%B2%E4%B8%8A%E5%8D%81%E5%A4%A7%E6%AD%BB%E4%BA%A1%E4%B9%8B%E6%89%A3&ct=1468996340&devicetype=iPhone OS9.3.2&version=/mmbizwap/zh_CN/htmledition/js/appmsg/index2f33ba.js&f=json&r=0.9941687306854874&is_need_ad=1&comment_id=2543039542&is_need_reward=1&both_ad=1&reward_uin_count=27&uin=ODI1MDE3NDAw&key=77421cf58af4a653e49de56eb5936a35c0536845549d14b6f87b522f28ae0123e5b637a3122f53193d6ae4631ae33065&pass_ticket=PqTVWYUPXk91uP8CPj8IucsxQRqZFEfsO6UBpNjqUMiORBfDC34%25252FB2L0QjQ2jN3E&wxtoken=1895604347&devicetype=iPhone%26amp%3Bnbsp%3BOS9.3.2&clientversion=16031610&x5=0
 

</script>



继续分析第4个请求,可看出与评论有关,观察其响应可找到评论,分析其请求参数,appmsgid与mid相同,comment_id之前得到,还有key。。。又白搭了

/mp/appmsg_comment?action=getcomment&__biz=MzA3ODI5NDg0Mw==&appmsgid=2654068981&idx=1&comment_id=633204119&offset=0&limit=100&uin=ODI1MDE3NDAw&key=77421cf58af4a6530935a9ceab8fea61730e509e21e697f5495290e092453581a6a00e02d3796cf8109ab9003324278b&pass_ticket=PqTVWYUPXk91uP8CPj8IucsxQRqZFEfsO6UBpNjqUMiORBfDC34%25252FB2L0QjQ2jN3E&wxtoken=3175855637&devicetype=iPhone%26amp%3Bnbsp%3BOS9.3.2&clientversion=16031610&x5=0

关于key的获取,有说按照DNS 劫持的思路来,也有说WeChatWeb.exe *32 这文件

绝大数思路来自https://github.com/Alexis374/tech_post/blob/master/crawl%20wechat%20article.md
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信