0

我有一个像这样的网站http://www.lfp.fr/ligue1/feuille_match/52255我想在选项卡 infoMatch 和 Statistiques 之间切换,但它只显示第一页的数据,当我使用萤火虫检查时它给我的回应是:GET showStatsJoueursMatchmatchId=52255&domId=112&extId=24&live=0&domNomClub=AJ+Auxerre&extNomClub=FC+Nantes

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 的响应,但只有第一页数据而不是统计数据。

4

1 回答 1

2

试试以下地址: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);
        }
    }
}

请注意,我使用了 aWebClient而不是WebRequestwhich 使代码更短且更易于理解。

从远程站点下载 HTML 后,您可能会考虑使用 HTML 解析库,例如HTML Agility Pack从您抓取的标记中提取有用信息。

于 2013-03-02T16:55:51.833 回答