HtmlAgilityPack scraping - Extrahieren bestimmter Knoten aus HTML-Dokument

c# html html-agility-pack web-scraping xpath

Frage

Entschuldigung im Vorraus, wenn diese schon beantwortet wurde (wenn ja bitte mich auf richtigen Standort hinweisen), habe ich hier, Web, Youtube usw. für zwei Tage gesucht und habe immer noch keine Antwort gefunden.

Ich möchte einige Daten aus folgender URL extrahieren: https://betcity.ru/en/results/sp_fl=a:46 ;

Ich versuche, alle Event-Namen für den Tag zu bekommen (das erste ist: Ho Kwan Kit / Wong Chun Ting - Fan Zhendong / Xu Xin und alle anderen danach). Wenn ich dieses Element inspiziere, kann ich diesen Teil von HTML sehen:

<div class="content-results-data__event"><span>Ho Kwan Kit/Wong Chun Ting — Fan Zhendong/Xu Xin</span></div>

Ich dachte daran, alle Divs mit class = "content-results-data__event" zu bekommen und dann inneren Text von diesen Divs zu bekommen. Jedes Mal, wenn ich meinen Code ausführe, erhalte ich null Ergebnisse. Warum bekomme ich keine Knoten, wenn ich sehe, dass divs mit einer solchen Klasse existieren und wie ich alle Ereignisse bekommen kann (wenn ich lerne, wie das geht, könnte ich andere Informationen bekommen, die ich von dieser Seite benötige). Hier ist mein Code (muss ich sagen, dass ich ziemlich neu bin).

public partial class Scrapper : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List<string> Events = new List<string>();
        HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = NewMethod(web);
        var Nodes = doc.DocumentNode.SelectNodes(xpath: "//div[@class='content - results - data__event'']").ToList();

        foreach (var item in Nodes)
        {
            Events.Add(item.InnerText);
        }

        GridView1.DataSource = Events;
        GridView1.DataBind();


    }

    private static HtmlDocument NewMethod(HtmlAgilityPack.HtmlWeb web)
    {
        return web.Load("https://betcity.ru/en/results/sp_fl=a:46;");
    }
}

}

Akzeptierte Antwort

Hier erfahren Sie, wie Sie den HTML-Code für einen Tag Match mit Selenium erhalten. Rest ist HtmlAgilityPack. Die Site verwendet selbstsignierte Zertifikate, daher musste ich den Treiber so konfigurieren, dass er selbstsignierte Zertifikate akzeptiert. Habe Spaß.

        var ffOptions = new FirefoxOptions();
        ffOptions.BrowserExecutableLocation = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
        ffOptions.LogLevel = FirefoxDriverLogLevel.Default;
        ffOptions.Profile = new FirefoxProfile { AcceptUntrustedCertificates = true };
        var service = FirefoxDriverService.CreateDefaultService();
       var driver = new FirefoxDriver(service, ffOptions, TimeSpan.FromSeconds(120));

        string url = "https://betcity.ru/en/results/date=2017-11-19;"; //remember to update the date accordingly.

        driver.Navigate().GoToUrl(url);
        Thread.Sleep(2000);
        Console.Write(driver.PageSource);


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum