Python 2.7 如何从选择器中获取一个元素
我在Python2.7中有这段代码Python 2.7 如何从选择器中获取一个元素,python-2.7,xpath,beautifulsoup,scrapy,selector,Python 2.7,Xpath,Beautifulsoup,Scrapy,Selector,我在Python2.7中有这段代码 for product in response.xpath('//*[@class="s-result-item s-result-card-for-container s-carded-grid celwidget "]'): print product 每种产品的结果都是 <Selector xpath='//*[@class="s-result-item s-result-card-for-contai
for product in response.xpath('//*[@class="s-result-item s-result-card-for-container s-carded-grid celwidget "]'):
print product
每种产品的结果都是
<Selector xpath='//*[@class="s-result-item s-result-card-for-container s-carded-grid celwidget "]' data=u'<li id="result_18" data-asin="B00DO53DSY'>
这个呢
product.css(“选择器::属性(数据asin)”).extract()我回答我自己的问题
product.css('li::attr(data-asin)').extract_first()
我回答我自己的问题
product.css('li::attr(data-asin)').extract_first()
如果要使用xpath,则需要使用属性
data sin来提取li
:
product.xpath("./li/@data-sin").extract_first()
数据asin是一个属性而不是标记,因此需要
@
语法。如果要使用xpath,则需要使用属性数据sin来提取li
:
product.xpath("./li/@data-sin").extract_first()
数据asin是一个属性而不是一个标记,因此您需要
@
语法。我认为在第二种情况下它应该是product.xpath(“./@data asin”)
。@paultrmbrth,是的,如果您有多个标记,我前面的第二个示例是,如果li是唯一的标记,即从标记中提取属性,在属性中可能有其他“数据”,而不是在li中,因此我不建议只查找属性。为了避免混淆,我完全删除了它。我认为在第二种情况下,它应该是product.xpath(“./@data asin”)
。@paultrmbrth,如果您有多个标记,则是的。我前面提到的第二个示例是,如果li是唯一的标记,即从标记中提取属性,在属性中可能有其他“数据”,而不是在li中,因此我不建议只查找属性。为了避免混淆,我把它全部删除了