基于请求c#的AJAX抓取网站

本文关键字:AJAX 抓取 网站 于请求 请求 | 更新日期: 2023-09-27 18:02:06

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

基于请求c#的AJAX抓取网站

尝试以下地址: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,从你抓取的标记中提取有用的信息。