我有一个这样的网站http://www.lfp.fr/ligue1/feuille_match/52255,我想在选项卡infoMatch和statisques之间切换,但它只显示了我第一页的数据,当我使用firebug检查它给我的响应时:得到showStatsJoueursMatchmatchId = 52255, domId = 112, extId = 24,生活= 0,domNomClub = AJ + Auxerre& extNomClub = FC +南特
string url="http://www.lfp.fr/ligue1/feuille_match/52255";
string getData = "?matchId=52255&domId=112&extId=24&live=0&domNomClub=AJ+Auxerre&extNomClub=FC+Nantes";
System.Uri uriObj = new System.Uri(url);
String Methode = "GET";
lgRequest = (HttpWebRequest)WebRequest.CreateDefault(uriObj);
lgRequest = (HttpWebRequest)WebRequest.CreateDefault(uriObj);
lgRequest.Method = Methode;
lgRequest.ContentType = "text/html";
SetRequestHeader("Accept", "text/html");
SetRequestHeader("Cache-Control", "no-cache");
SetRequestHeader("Content-Length", getData.Length.ToString());
StreamWriter stream = new StreamWriter
(lgRequest.GetRequestStream(), Encoding.ASCII);
stream.Write(body);
stream.Close();
lgResponse = (HttpWebResponse)lgRequest.GetResponse();
但是它给了我一个错误"不能发送带有这个动词类型的内容体"。当我在方法中使用"POST"时,它给出了HTML的响应,但只有第一页数据而不是统计数据。
尝试以下地址:http://www.lfp.fr/ligue1/feuille_match/showStatsJoueursMatch?matchId=52255&domId=112&extId=24&live=0&domNomClub=AJ+Auxerre&extNomClub=FC+Nantes
就像这样:
using System;
using System.Net;
class Program
{
static void Main()
{
using (var client = new WebClient())
{
string result = client.DownloadString("http://www.lfp.fr/ligue1/feuille_match/showStatsJoueursMatch?matchId=52255&domId=112&extId=24&live=0&domNomClub=AJ+Auxerre&extNomClub=FC+Nantes");
Console.WriteLine(result);
}
}
}
请注意,我使用了WebClient
而不是WebRequest
,这使得代码更短,更容易理解。
一旦你从远程站点下载了HTML,你可以考虑使用一个HTML解析库,比如HTML Agility Pack
,从你抓取的标记中提取有用的信息。