微信数据挖掘 图文数据获取
来源:互联网 发布:nmap软件功能 编辑:程序博客网 时间:2024/05/21 14:00
我们都知道微信后台针对图文分析只保存最近7天的数据,但这完全无法满足我们进行数据分析的需求,所以我稍做一番研究,具体笔记如下开发语言(C# Winform):
【设计效果:】
【后台代码】
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Xml;using System.Net;using System.IO;namespace gongzhonghao{ public partial class FormBase : Form { string appid = ""; public FormBase() { InitializeComponent(); } private void webBrowserWX_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { HtmlDocument wxPage = webBrowserWX.Document; string html = wxPage.Body.InnerHtml; if (html == null) return; if (html.Contains("第一次使用公众平台")){ wxPage.Window.ScrollTo(615, 90); XmlDocument dom = new XmlDocument(); dom.Load("config.xml"); foreach (XmlElement account in dom.DocumentElement.ChildNodes) { if (account.SelectSingleNode("title").InnerText == comboBoxAccount.SelectedText) { wxPage.GetElementById("account").InnerText = account.SelectSingleNode("username").InnerText; wxPage.GetElementById("pwd").InnerText = account.SelectSingleNode("password").InnerText; wxPage.GetElementById("loginBt").InvokeMember("click"); } } } else if (html.Contains("总用户数")) { foreach (HtmlElement link in wxPage.Links) { if (link.GetAttribute("href").Contains("/misc/pluginloginpage?action=stat_article_detail")) { webBrowserWX.Navigate(link.GetAttribute("href")); } } } else if (html.Contains("腾讯云分析")) { buttonUpload.Enabled = true; button1.Enabled = true; button2.Enabled = true; button3.Enabled = true; } else if (html.Contains("hasMore")) { string ret = this.PostWebRequest("http://www.hqgq.com/api/weixin/mp.html", "appid="+ this.appid +"&data=" + html, Encoding.UTF8); MessageBox.Show("数据已上报!" + ret); } } private void Form1_Load(object sender, EventArgs e) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.baidu.com"); XmlDocument dom = new XmlDocument(); dom.Load("config.xml"); foreach (XmlElement account in dom.DocumentElement.ChildNodes) { comboBoxAccount.Items.Add(account.SelectSingleNode("title").InnerText); } } private void comboBoxAccount_SelectedIndexChanged(object sender, EventArgs e) { buttonUpload.Enabled = false; webBrowserWX.Navigate("https://mp.weixin.qq.com/cgi-bin/logout"); XmlDocument dom = new XmlDocument(); dom.Load("config.xml"); foreach (XmlElement account in dom.DocumentElement.ChildNodes) { if (account.SelectSingleNode("title").InnerText == comboBoxAccount.SelectedItem.ToString()) { this.appid = account.SelectSingleNode("appid").InnerText; } } } private void buttonUpload_Click(object sender, EventArgs e) { string url = "https://mta.qq.com/mta/wechat/ctr_article_detail/get_list?appid="+ this.appid+"&token=2014"; webBrowserWX.Navigate(url); } private string PostWebRequest(string postUrl, string paramData, Encoding dataEncode) { string ret = string.Empty; try { byte[] byteArray = dataEncode.GetBytes(paramData); //转化 HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl)); webReq.Method = "POST"; webReq.ContentType = "application/x-www-form-urlencoded"; webReq.ContentLength = byteArray.Length; Stream newStream = webReq.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length);//写入参数 newStream.Close(); HttpWebResponse response = (HttpWebResponse)webReq.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default); ret = sr.ReadToEnd(); sr.Close(); response.Close(); newStream.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } return ret; } private void button1_Click(object sender, EventArgs e) { string url = "https://mta.qq.com/mta/wechat/ctr_article_detail/get_list?appid=" + this.appid + "&token=2014&page=2"; webBrowserWX.Navigate(url); } private void button2_Click(object sender, EventArgs e) { string url = "https://mta.qq.com/mta/wechat/ctr_article_detail/get_list?appid=" + this.appid + "&token=2014&page=3"; webBrowserWX.Navigate(url); } private void button3_Click(object sender, EventArgs e) { string url = "https://mta.qq.com/mta/wechat/ctr_article_detail/get_list?appid=" + this.appid + "&token=2014&page=7"; webBrowserWX.Navigate(url); } }}
【config.xml 文件 放于目录bin/Debug/config.xml 下】
<?xml version="1.0" encoding="utf-8" ?><account> <item> <title>微信A</title> <username>账号A</username> <password>密码A</password> <appid>appid_A</appid> </item> <item> <title>微信B</title> <username>账号B</username> <password>密码B</password> <appid>appid_B</appid> </item></account>
0 0
- 微信数据挖掘 图文数据获取
- 获取历史天气数据,数据挖掘必备
- 背靠腾讯PC大数据平台 微信如何挖掘大数据金矿?
- 亚信数据:运营商数据挖掘-从架构到应用
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- 数据挖掘
- JSON for java入门总结
- Android:根据图片的名称获取对应的资源id
- vs2010项目属性配置
- Cocos2d-X开发中国象棋《二》工程文件概述
- 快捷支付集成
- 微信数据挖掘 图文数据获取
- Introduction to FFmpeg
- 从SVN上下载的web项目包变成文件夹的解决办法
- Android界面特效全汇总
- BUG:android真机调试 opendir failed, Peermission denied
- 将django的HTTP响应保存为excel
- GIT和SVN之间的五个基本区别
- arm平台搭建vsftpd服务
- Struts2.ActionSupport