高效的XPath语法专门提取单个组件

时间:2015-02-09 13:19:05

标签: html xpath web-scraping web-crawler scrapy

使用Firefox-Aurora我从此网站确定了以下HTML代码段:http://www.zdic.net/z/19/js/5DCD.htm

我想只提取组件丨フ丨ノ一丨ノ丶フノ一ノ丨フ一一ノフフ丶

它位于以下代码块的底部附近:

<tr>

<td class="z_i_t4_uno" align="center">

    <a href="http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=5DCD" target="_blank"> 

        <img src="/images/unicode2.gif" border="0" align="absmiddle">

    </a> 

    U+5DCD

</td>

<td class="z_i_t4" align="center">

    <span class="diczx7">

        MTVC

    </span>

</td>

<td class="z_i_t4" align="center">

    <span class="diczx7">

        UHVI

    </span>

</td>

<td class="z_i_t4" align="center">

    <span class="diczx7">

        LLZN

    </span>

</td>

<td style="background-color: transparent;" class="z_i_t4" align="center">

    <span class="diczx6">

        22413

    </span>

</td>

<td class="z_i_t4" align="center">

    <span id="z_i_t2_bis" title="竖折竖撇横竖撇捺折撇横撇竖折横横撇折折捺">

    丨フ丨ノ一丨ノ丶フノ一ノ丨フ一一ノフフ丶

    </span>

</td>

我已经尝试了不同的XPath序列,在本网站的帮助下将其固定下来:http://www.xpathtester.com/xpath但我似乎无法掌握它。

//title[@td]之类的内容会产生

WARNING - Processing of namespace declaration [//title[@td]] failed.    Right format: PREFIX=NAMESPACE. Declaration skipped.
ERROR - Seem there is no XPath provided?

我怎样才能确保我只收集那个序列而没有别的?

2 个答案:

答案 0 :(得分:1)

您获得的警告和错误特定于您用于测试XPath表达式的站点。您似乎使用了用于在http://www.xpathtester.com/xpath上声明名称空间的语法。

鉴于您知道如何提交XPath表达式,以下工作正常:

//td[@class = 'z_i_t4'][last()]/span/text()

并仅为您提供所需的文本节点:

丨フ丨ノ一丨ノ丶フノ一ノ丨フ一一ノフフ丶

答案 1 :(得分:-3)

试试这段代码

xpath=tr/td/span[@id='z_i_t2_bis']