Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何从选择器中获取一个元素_Python 2.7_Xpath_Beautifulsoup_Scrapy_Selector - Fatal编程技术网

Python 2.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

我在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-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中,因此我不建议只查找属性。为了避免混淆,我把它全部删除了