如何拉href链接

时间:2012-10-16 22:23:24

标签: xpath

我正试图通过简单的谷歌搜索从一个正式的页面中拉出链接...它可能很简单,但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 /”部分。感谢

2 个答案:

答案 0 :(得分:0)

尝试以下Xpath表达式:

//a[@class="prod_container"]/@href

答案 1 :(得分:0)

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

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