0

我正在尝试从一个正式的页面中提取一个链接,我似乎无法通过简单的谷歌搜索找到...这可能很简单,但 xpath 不是我的专业领域

我正在使用 c# 并尝试提取链接并将其写入控制台以弄清楚如何获取链接

这是我的 C# 代码

            var document = webGet.Load("http://classifieds.castanet.net/cat/vehicles/cars/0_-_4_years_old/");
        var browser = document.DocumentNode.SelectSingleNode("//a[starts-with(@href,'/details/')]");
        if (browser != null)
        {
            string htmlbody = browser.OuterHtml;
           Console.WriteLine(htmlbody);

        }

html代码部分是

<div class="last">&hellip;</div><a href="/cat/vehicles/cars/0_-_4_years_old/?p=13">13</a><a href="/cat/vehicles/cars/0_-_4_years_old/?p=2">&raquo;</a>
<select name="sortby" class="sortby" onchange="doSort(this);">
    <option value="">Most Recent</option>
    <option value="of" >Oldest First</option>
    <option value="mw" >Most Views</option>
    <option value="lw" >Fewest Views</option>
    <option value="lp" >Lowest Price</option>
    <option value="hp" >Highest Price</option>
</select><div style="clear:both"></div>
</div>
<br /><br /><br />
                <a href="/details/2008_vw_gti/1454282/" class="prod_container" >
        <h2>2008 VW GTi</h2>
        <div style="float:left; width:122px; z-index:1000">
        <div class="thumb"><img src="http://c.castanet.net/img/28/thumbs/1454282-1-1.jpg" border="0"/></div>
        <div class="clear"></div>
        mls
        </div>
        <div class="descr">
            The most fun car I have owned.  Dolphin Grey, 4 door, Dual Climate control, DRG Transmission with paddle shift.  Leather...
        </div>
        <div class="pdate">
            <p class="price">$19,000.00</p>
            <p class="date">Kelowna<br />Posted: Oct 15,  2:54 PM<br />Views: 349</p>
        </div>
        <div style="clear:both" ></div>
        <div class="seal"><img src="/images/bookmark.png" /></div>
        </a>
                <a href="/details/price_drop_gorgeous_rare_white_2009_honda_accord_ex-l_coupe/1447341/" class="prod_container" >
        <h2>PRICE DROP!!! Gorgeous Rare White 2009 Honda Accord EX-L Coupe </h2>
        <div style="float:left; width:122px; z-index:1000">
        <div class="thumb"><img src="http://c.castanet.net/img/28/thumbs/1447341-1-1.jpg" border="0"/></div>
        <div class="clear"></div>
        sun2010
        </div>
        <div class="descr">

我要获取的链接是“/details/2008_vw_gti/1454282/”部分。谢谢

4

2 回答 2

0

HTML 不是 XML。XPath 是用于浏览 XML 文档的工具,但是 HTML 不符合 XML 要求。您链接的 HTML 不是格式良好的 XML,因此 XPath 将不起作用。

您需要查看使用 HTML 到 XML 转换器,然后将该转换的输出添加到您的问题以编写 XPath,或者使用不同的工具进行调查。我建议在 Google 上搜索“C# HTML scrapers”,但我不熟悉 .Net,所以无法提供更窄的选项。

于 2012-10-16T23:11:12.550 回答
0

尝试以下 Xpath 表达式:

//a[@class="prod_container"]/@href
于 2012-10-16T22:29:21.227 回答