Python 2.7 具有多个td'的td刮削内容物;他是同班同学

Python 2.7 具有多个td'的td刮削内容物;他是同班同学,python-2.7,xpath,web-scraping,scrapy,Python 2.7,Xpath,Web Scraping,Scrapy,我正在尝试刮取一个表的内容,该表包含多个具有相同类的行和数据。这是网站: 因此,我的目标是从表类规范细节中剔除品牌名称:至关重要 这是HTML,tr都有相同的类,所以不可能用类进行选择 <div id="tab:specificaties" class="tab_active"> <table class="spec-detail"> <tbody> <tr></tr> <tr&

我正在尝试刮取一个表的内容,该表包含多个具有相同类的行和数据。这是网站:

因此,我的目标是从表类规范细节中剔除品牌名称:至关重要

这是HTML,tr都有相同的类,所以不可能用类进行选择

     <div id="tab:specificaties" class="tab_active">

<table class="spec-detail">
    <tbody>
        <tr></tr>
        <tr></tr>
        <tr>
            <td class="spec-index-column"></td>
            <td class="spec-column">
                <a href="http://tweakers.net/merk/306/crucial/">

                    Crucial

                </a>
            </td>
        </tr>
        <tr>
            <td class="spec-index-column">

                Serie

            </td>
            <td class="spec-column">
                <a href="http://tweakers.net/serie/2930/ballistix-tactical/"></a>
            </td>
        </tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
    </tbody>
</table>
返回

CrucialCrucialCrucial
我也试过了

sel.xpath('//*[@id="tab:specificaties"]/table/tbody/tr[3]/td[2]/a/text()')
然而,这没有任何回报

所选内容可能与页面上的多个元素相匹配,我无法找到将它们分开的方法。我怎样才能让这个回报“至关重要”一次


提前感谢。

将xpath本地化为特定产品,方法是在其前面放置一个

product.xpath('.//tr[contains(td[1], "Merk")]/td[2]/a/text()')
演示:

  • 以前

    >>> for product in products:
    ...     print product.xpath('//tr[contains(td[1], "Merk")]/td[2]/a/text()').extract()
    ... 
    [u'Crucial', u'Crucial', u'Ballistix Tactical', u'Crucial']
    
  • 之后

    >>> for product in products:
    ...     print product.xpath('.//tr[contains(td[1], "Merk")]/td[2]/a/text()').extract()
    ... 
    [u'Crucial']
    

我只是在那里放了一个点,它给出了一个错误,“无效XPath//tr[]”@jjerry您确定您使用的是我在答案中提供的相同XPath吗?不管它如何工作,似乎代码的另一部分是错误的。非常感谢。
>>> for product in products:
...     print product.xpath('.//tr[contains(td[1], "Merk")]/td[2]/a/text()').extract()
... 
[u'Crucial']