using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using System.Net; using System.Dynamic; using HtmlAgilityPack; namespace entropedizer { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public String postRequest(string url, string eventTarget) { // A "pre-request," sent to gather SessionID and POST data parameters for the main request HttpWebRequest prequest = (HttpWebRequest)WebRequest.Create("http://w...content-available-to-author-only...a.info/Chart.aspx?chart=Chart"); HttpWebResponse presponse = (HttpWebResponse)prequest.GetResponse(); Stream pstream = presponse.GetResponseStream(); StreamReader psr = new StreamReader(pstream); string phtml = psr.ReadToEnd(); Match viewstate = Regex.Match(phtml, "id=\"__VIEWSTATE\".+/>"); Match eventvalidation = Regex.Match(phtml, "id=\"__EVENTVALIDATION\".+/>"); ASCIIEncoding encoding = new ASCIIEncoding(); string postData = "__EVENTTARGET=" + eventTarget + "&__VIEWSTATE=" + Uri.EscapeDataString(viewstate.ToString().Substring(24, viewstate.Length - 28)) + "&__EVENTVALIDATION=" + Uri.EscapeDataString(eventvalidation.ToString().Substring(30, eventvalidation.Length - 34)); byte[] data = encoding.GetBytes(postData); // The main request, intended to retreive the desired HTML HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://w...content-available-to-author-only...a.info/Chart.aspx?chart=Chart"); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.CookieContainer = new CookieContainer(); Cookie sessionId = new Cookie("ASP.NET_SessionId", Regex.Match(presponse.Headers.ToString(), "ASP.NET_SessionId=.+ d").ToString().Substring(18, Regex.Match(presponse.Headers.ToString(), "ASP.NET_SessionId=.+ d").Length - 21), "/", ".entropedia.info"); request.CookieContainer.Add(new Uri("http://w...content-available-to-author-only...a.info/Chart.aspx?chart=Chart"), sessionId); Stream stream = request.GetRequestStream(); stream.Write(data, 0, data.Length); stream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); stream = response.GetResponseStream(); StreamReader sr = new StreamReader(stream); return sr.ReadToEnd(); } private void Form1_Load(object sender, EventArgs e) { System.Net.ServicePointManager.Expect100Continue = false; HtmlAgilityPack.HtmlDocument hChart = new HtmlAgilityPack.HtmlDocument(); hChart.LoadHtml(postRequest("http://w...content-available-to-author-only...a.info/Chart.aspx?chart=Chart", "ctl00%24ContentPlaceHolder1%24DG1%24ctl19%24ctl05")); HtmlNodeCollection chartStrings = hChart.DocumentNode.SelectNodes("/html/body/form/table"); CheckedListBox chartOptions = new CheckedListBox(); foreach (HtmlNode i in chartStrings) { chartOptions.Items.Add(chartStrings[i].ToString()); } this.Controls.Add(chartOptions); } } }