HtmlAgilityPack SelectNodes InnerText返回占位符文本而非实际值

问题描述 投票:0回答:1

在我的应用程序中,我想从一个网页中提取我感兴趣的值。

(ShopData是HtmlNodeCollection)而我的C#代码是这样的。

var ShopName = ShopData.SelectNodes(".//div[@class='shop-name']");

This return nullif 我尝试this,返回节点。

var ShopName1 = ShopData.SelectNodes(".//div[contains(@class, 'shop cf')]")

为什么./div[@class='shop-name']不工作?如果我做ShopData.SelectNodes("./div[contains(@class,'shop cf')]").ToList()[0];那么内文是空的.同时ShopData.SelectNodes("./div[@class='price']").ToList()[0].InnerText正常返回文本.这2个函数之间有什么区别?

我的网页是这样的。

<li class="cf card js-product-card">
    <div class="shop cf">
        <div class="shop-logo js-shop-logo">
            <img class="fade-in" src="//a.scdn.gr/ds/shops/logos/2870/mid_20181210114648_f305ba08.jpeg" data-src="//a.scdn.gr/ds/shops/logos/2870/mid_20181210114648_f305ba08.jpeg" alt="Electroholic">
        </div>
        <i class="icon tooltip-parent js-tooltip-handler trustmark" data-trigger="toggle" data-type="string" data-theme="light" data-content="Το κατάστημα διαθέτει πιστοποίηση GRECA Trustmark που σημαίνει ότι έχει δεσμευτεί να εργαστεί σύμφωνα με τον Eλληνικό και Ευρωπαϊκό (αντίστοιχα) Κώδικα Ηλεκτρονικού Εμπορίου, διασφαλίζοντας δεοντολογικά πρότυπα στην ψηφιακή αγορά.<div>Περισσότερες πληροφορίες στην <a href='http://www.greekecommerce.gr/' target='_blank'>ιστοσελίδα του GRECA.</a></div>" data-placement="left">
<span>GRECA Trustmark</span>
</i>
        <div class="shop-name">Electroholic</div>
    </div>
    <div class="description">
        <div class="item">
            <h3>
<a title="Πολυμηχάνημα Epson EcoTank ITS L6170 WiFi ink - έως 60 δόσεις" rel="nofollow" class="js-product-link content-placeholder" data-type="title" href="/products/show/32755241">
Πολυμηχάνημα Epson EcoTank ITS L6170 WiFi ink - έως 60 δόσεις</a>
</h3>
            <p class="availability"><span class="availability">Παράδοση έως 30 ημέρες</span></p>
        </div>
    </div>
    <div class="price">
        <div class="">
            <div class="price-content"><a title="Πολυμηχάνημα Epson EcoTank ITS L6170 WiFi ink - έως 60 δόσεις" rel="nofollow" class="js-product-link product-link content-placeholder" data-type="net_price" href="/products/show/32755241">358,00 €</a><span class="extra-cost cf"><em>+ 9,00 €</em> <span>Μεταφορικά</span></span><span class="extra-cost cf"><em>+ 2,00 €</em> <span>Αντικαταβολή</span></span><span class="final-price"><a title="Πολυμηχάνημα Epson EcoTank ITS L6170 WiFi ink - έως 60 δόσεις" rel="nofollow" class="js-product-link content-placeholder" data-type="final_price" href="/products/show/32755241">369,00 €</a></span></div>
        </div>
    </div>
    <div class="shop-details react-expander-bottom js-product-uservoice"><span class="payment-options"><i class="icon tooltip-parent js-tooltip-handler trustmark" data-trigger="toggle" data-type="string" data-theme="light" data-content="Το κατάστημα διαθέτει πιστοποίηση GRECA Trustmark που σημαίνει ότι έχει δεσμευτεί να εργαστεί σύμφωνα με τον Eλληνικό και Ευρωπαϊκό (αντίστοιχα) Κώδικα Ηλεκτρονικού Εμπορίου, διασφαλίζοντας δεοντολογικά πρότυπα στην ψηφιακή αγορά.<div>Περισσότερες πληροφορίες στην <a href='http://www.greekecommerce.gr/' target='_blank'>ιστοσελίδα του GRECA.</a></div>" data-placement="auto vertical"><span>GRECA Trustmark</span></i>
        </span>
        <div class="shop-expander-tabs">
            <button class="shop-tab js-shop-tab icon ">
                <div class="rating-with-count react-component">
                    <a class="rating stars" title="3,9 αστέρια από 1493 χρήστες" href="#reviews">
                        <div class="rating-wrapper">
                            <div class="actual-rating blue" itemprop="" style="width: 78%;">1493</div><span itemprop="">3,9</span></div>
                    </a>
                    <div class="reviews-count  blue">
                        <a title="1493 αξιολογήσεις χρηστών" href="#reviews">1493</a></div>
                </div>
            </button>
            <button class="shop-tab js-shop-tab icon location-tab multi-shops ">
                <span>Περιστέρι, Αττική</span></button>
        </div>
        <div class="shop-info-object js-shop-info-expander ">
        </div>
    </div>
</li>
html-agility-pack
1个回答
0
投票

好了,我知道是怎么回事了,网页使用AJAX调用,这就是为什么我看不到它们。

© www.soinside.com 2019 - 2024. All rights reserved.