首页 > 代码库 > 爬虫-微信公众平台消息获取
爬虫-微信公众平台消息获取
帮朋友抓取微信公众平台的用户评论信息。
下面只说核心的部分,怎么获取评论信息。
查看HTML代码,没有发现关于评论部分的标签。看来是用JS动态生成的,但是查找ajax请求也没有找到哪里有返回数据。
最后搜索一下,原来是在这里,很直白的写在了JS里:
<script type="text/javascript"> wx.cgiData = http://www.mamicode.com/{>
用的是JSON格式,代码太乱,放在Eclipse里格式化一下,消息列表大概就是这个样了:{"msg_item" :[ { "id" : 200322761, "type" : 1, "fakeid" : "593656935", "nick_name" : "Suang?1", "date_time" : 1398854675, "content" : "记得帮我查一下是不是这个电话!", "source" : "", "msg_status" : 4, "has_reply" : 0, "refuse_reason" : "", "multi_item" : [], "to_uin" : 3071594631, "send_stat" : { "total" : 0, "succ" : 0, "fail" : 0 } }, { "id" : 200322760, "type" : 2, "fakeid" : "593656935", "nick_name" : "Suang?1", "date_time" : 1398854664, "source" : "", "msg_status" : 4, "has_reply" : 0, "refuse_reason" : "", "multi_item" : [], "to_uin" : 3071594631, "send_stat" : { "total" : 0, "succ" : 0, "fail" : 0 } } ] }
上面就是 json字符串 中 msg_item 所对应的列表里的对象。可以看出这个是一个数组,每个评论是里面的一个对象。怎么生成对于的Java类呢 ?
这里有一个在线的工具:http://jsongen.byingtondesign.com/
可以根据JSON 字符串,生成对应的java类:
类1
import java.util.List; public class MessageList{ private List<Message> msg_item; public List<Message> getMsg_item() { return msg_item; } public void setMsg_item(List<Message> msgItem) { msg_item = msgItem; } }类2。部分字段没有用,删掉了public class Message { private String content; private long date_time; private String fakeid; private int has_reply; private long id; private int msg_status; private String nick_name; private String refuse_reason; private String source; private long to_uin; private int type; // get set 略去 }下面来做个测试。用google的 Gson 来进行处理,把json字符串解析为 java对象。
//jsonstr 为 msg_item 的json字符串 MessageList msgList = new Gson().fromJson(jsonstr, MessageList.class); System.out.println(msgList.getMsg_item().size());
解析成功。所有的对象都在 msgList里了
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。