0

HTML-Agility-Pack を使用して、Mcafee Threat Intelligence labからドメインと IP に関するデータをスクレイピングしていますが、DocumentNode.SelectNodes にどのような XPATH を提供しても、探しているノード (脅威レベルの画像) を見つけることができません。他のノードとイメージを見つけることができますが、私が知る限り、この特定のものは見つけられません。特定の img には、このページの「ctl00_mainContent_imgRisk」の ID があります: www.mcafee.com/threat-intelligence/domain/default.aspx?domain=facebook.com (例として facebook.com)。私が使用しているコードは次のとおりです。

        string XPATH = "foo"
        string url = "http://www.mcafee.com/threat-intelligence/ip/default.aspx?";
        if (y == true)
            url = url + "ip=" + ipaddress;
        if (y == false)
            url = url + "domain=" + domainname;
        HttpWebRequest mcafeeReq = (HttpWebRequest)WebRequest.Create(url);
        mcafeeReq.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5";
        HtmlDocument mcafeeWeb = new HtmlDocument();
        HttpWebResponse resp = (HttpWebResponse)mcafeeReq.GetResponse();
        var resultStream = resp.GetResponseStream();
        mcafeeWeb.Load(resultStream);
        HtmlNodeCollection nodes = mcafeeWeb.DocumentNode.SelectNodes(XPATH);
        try
        {
            foreach (HtmlNode node in nodes)
            {
                try
                {
                    HtmlAttribute att = node.Attributes["title"];
                    Console.WriteLine(att.Value);
                }
                catch
                {
                    Console.WriteLine("No Value Found");
                }
            }
        }
        catch
        {
            Console.WriteLine("No Nodes Found.");
        }

を含むimgを見つけるために、XPATHのさまざまな値を試しました

「//img[@id='ctl00_mainContent_imgRisk']」、ノードを返さない

「//img」、いくつかの img を返しますが、正しいものではありません

img "/html/body[@id='ctl00_MasterBody']/div[@class='wrapper']/div[@class='page']/div[@class='container pageContainer'] への完全な XPATH /div[@class='pageMiddle']/div[@class='pageTopGradient']/div[@class='pageBottomGradient']/div[@class='canvas pageContent pageBannerBolster']/div[@class='row pageBanner pageBannerTeal']/div[@class='area primaryContent']/div[@class='bannerContent bannerContentImage']/img[@id='ctl00_mainContent_imgRisk']"、これはノードを返しません。

私が間違っていることを誰かが知っていますか?

4

1 に答える 1

1

あなたのXPathは

//img[@id='ctl00_mainContent_imgRisk']

残りはすべて余分なクラフトです。

ツールによって生成された XPath を使用しないでください。XPath を自分で作成します。

于 2012-07-18T19:19:02.837 に答える