【发布时间】:2017-08-30 09:14:59
【问题描述】:
例如鉴于此url
我想得到卖家的div
使用 Xpath,首先我使用 css 获取特定的卖家行,然后使用 './' 来引用当前节点,然后我可以获得 (5) 个放置在目标 div(行)之后的 div。
b = response.css('div#olpOfferList div.a-row.a-spacing-mini.olpOffer')[1].xpath('./div')
b 的结果:
<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 '>
我试过了,但出现错误:
a = response.css('div#olpOfferList div.a-row.a-spacing-mini.olpOffer')[1].css('> div')
如何使用 css 引用当前节点? :D 感谢您的帮助!
【问题讨论】:
-
仅适用于 Xpath; CSS 没有祖先或父级,这可能是 CSS 和 XPATH 之间有用的备忘单链接 cheat-sheets.org/saved-copy/Locators_table_1_0_2.pdf