2012-07-24 58 views
-1

有人可以幫助解析網站。 我已經解析了很多網站,但這個很有趣,內部代碼是用php文件動態生成的。所以我試圖用這樣的WebClient:C#WebClient OpenRead

WebClient client = new WebClient(); 
string postData = "getProducts=1&category=340&brand=0"; 

byte[] byteArray = Encoding.UTF8.GetBytes(postData); 

client.Headers.Add("POST", "/ajax.php HTTP/1.1"); 
client.Headers.Add("Host", site); 
client.Headers.Add("Connection", "keep-alive"); 
client.Headers.Add("Origin", "http://massup.ru"); 
client.Headers.Add("X-Requested-With", "XMLHttpRequest"); 
client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"); 
client.Headers.Add("Accept", "*/*"); 
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); 
client.Headers.Add("Content-length", byteArray.Length.ToString()); 
client.Headers.Add("Referer", "http://massup.ru/category/proteini"); 
client.Headers.Add("Accept-Encoding", "gzip,deflate,sdch"); 
client.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4"); 
client.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.3"); 
client.Headers.Add("Cookie", "cart=933a71dfee2baf8573dfc2094a937f0d; r_v=YToyOntpOjA7YTo3OntzOjU6Im1vZGVsIjtzOjI2OiIxMDAlIFdoZXkgUHJvdGVpbiA5MDgg0LPRgCI7czozOiJ1cmwiO3M6MzQ6Im11bHRpcG93ZXItMTAwLXdoZXktcHJvdGVpbi05MDgtZ3IiO3M6NToiYnJhbmQiO3M6MTA6Ik11bHRpcG93ZXIiO3M6ODoiY2F0ZWdvcnkiO3M6Mzk6ItCh0YvQstC%2B0YDQvtGC0L7Rh9C90YvQtSDQuNC30L7Qu9GP0YLRiyI7czo5OiJzY2F0ZWdvcnkiO3M6Mzc6ItCh0YvQstC%2B0YDQvtGC0L7Rh9C90YvQuSDQuNC30L7Qu9GP0YIiO3M6NToicHJpY2UiO3M6MToiMCI7czo0OiJpY29uIjtzOjM3OiJodHRwOi8vbWFzc3VwLnJ1L2ltYWdlcy9pY29uXzQ3NTIuanBnIjt9aToxO2E6Nzp7czo1OiJtb2RlbCI7czoxNzoiTWF0cml4IDIuMCA5ODQg0LMiO3M6MzoidXJsIjtzOjE2OiJtYXRyaXgtMi0wLTk4NC1nIjtzOjU6ImJyYW5kIjtzOjc6IlN5bnRyYXgiO3M6ODoiY2F0ZWdvcnkiO3M6Mzk6ItCh0YvQstC%2B0YDQvtGC0L7Rh9C90YvQtSDQuNC30L7Qu9GP0YLRiyI7czo5OiJzY2F0ZWdvcnkiO3M6Mzc6ItCh0YvQstC%2B0YDQvtGC0L7Rh9C90YvQuSDQuNC30L7Qu9GP0YIiO3M6NToicHJpY2UiO3M6NDoiMTE5MCI7czo0OiJpY29uIjtzOjM3OiJodHRwOi8vbWFzc3VwLnJ1L2ltYWdlcy9pY29uXzEwMDguanBnIjt9fQ%3D%3D; PHPSESSID=933a71dfee2baf8573dfc2094a937f0d"); 

Stream data = client.OpenRead("http://massup.ru/ajax.php"); 
StreamReader reader = new StreamReader(data); 
string s = reader.ReadToEnd(); 
Console.WriteLine(s); 
data.Close(); 
reader.Close(); 

但它給了我一個錯誤!

有人可以幫助我解決這種問題。

+3

「給我一個錯誤」是相當無益的。你會得到什麼錯誤? – Richard 2012-07-24 22:07:37

+1

捕獲PHP腳本的輸出並不重要,因爲您正在讀取輸出本身。 – CodeCaster 2012-07-24 22:12:41

+0

你實際上並沒有解析任何東西,只是提取。 – JamieSee 2012-07-24 22:41:53

回答

0

看到我的回答C# https login and download file,它有正確處理HTTP POST的工作代碼,然後清理你基於它的東西。完成之後,如果您仍需要幫助,請發佈更新的代碼,並更明確地描述您所看到的具體錯誤或異常。