2017-08-30 29 views
1

例如鉴于这种urlscrapy css选择器链如何表示当前节点?

我想获得卖家的DIV

使用XPath,首先我用CSS来得到一个特定的卖家行,然后我用“./”来指代当前节点,那么我可以得到(5) div放在我的目标div(行)之后。 B的

b = response.css('div#olpOfferList div.a-row.a-spacing-mini.olpOffer')[1].xpath('./div') 

结果:

<Selector xpath='./div' data=u'<div class="a-column a-span2 olpPriceCol'> 
<Selector xpath='./div' data=u'<div class="a-column a-span3 olpConditio'> 
<Selector xpath='./div' data=u'<div class="a-column a-span3 olpDelivery'> 
<Selector xpath='./div' data=u'<div class="a-column a-span2 olpSellerCo'> 
<Selector xpath='./div' data=u'<div class="a-column a-span2 olpBuyColum'> 

但随着CSS,我也不怎么选择当前节点的

a = response.css('div#olpOfferList div.a-row.a-spacing-mini.olpOffer')[1].css('div > div') 

结果后指当前节点:

<Selector xpath=u'descendant-or-self::div/div' data=u'<div class="a-column a-span2 olpPriceCol'> 
<Selector xpath=u'descendant-or-self::div/div' data=u'<div class="a-column a-span3 olpConditio'> 
<Selector xpath=u'descendant-or-self::div/div' data=u'<div class="a-section a-spacing-small">\n'> 
<Selector xpath=u'descendant-or-self::div/div' data=u'<div class="a-column a-span3 olpDelivery'> 
<Selector xpath=u'descendant-or-self::div/div' data=u'<div class="a-column a-span2 olpSellerCo'> 
<Selector xpath=u'descendant-or-self::div/div' data=u'<div class="a-column a-span2 olpBuyColum'> 
<Selector xpath=u'descendant-or-self::div/div' data=u'<div class="a-button-stack">\n   '> 

我试过这个但得到一个错误r:

a = response.css('div#olpOfferList div.a-row.a-spacing-mini.olpOffer')[1].css('> div') 

如何用css引用当前节点? :D感谢您的帮助!

回答

1

你不能在最后没有XPATH选择器。

所以你用的是正确的

b = response.css('div#olpOfferList div.a-row.a-spacing-mini.olpOffer')[1].xpath('./div') 

由于CSS没有提及当前节点或父节点的话,你就必须只使用XPath。

+0

感谢您澄清我的难题! – Tianqing