如何解决如何从选择器对象列表中提取单个元素?
我正在尝试通过获取所有product元素并遍历ecah元素来从网站上打印产品名称。
def parse(self,response):
result = response.xpath("//div[@class = 's-main-slot s-result-list s-search-results sg-row']")
for item in result:
for product in item.xpath("//div[@data-component-type='s-search-result']"):
print(product.xpath("//h2/a/span/text()").extract())
,但不是单独提供,而是一次打印所有。在打印个人姓名时,它会打印列表中的所有姓名。 这是上面代码的输出。
['Pampers Premium Care Pants Diapers,Small,70 Count','Pampers Premium Care Pants Diapers Monthly Box Pack,Large,88 Count','Pampers Premium Care Pants Diapers M
onthly Box Pack,Medium,108 Count','Pampers New Diaper Pants Super Value Box,Large (Pack of 168)','Pampers Diaper Pants,64 Count',76 Count',XL,56 Count','Pampers Active Baby Diapers,New Born,72 Count','Huggies Wonder Pants,Small Size Diapers,86 Count','M
amyPoko Pants Standard Diapers,Small (Pack of 46)','Pampers Diaper Pants Monthly
Box Packs,X-Large,112 Count',XX-Large,28 Count','Pampers New Diapers Pants,50 Count','Pampers Diaper Pants Monthly Box Pack,Me
dium,152 Count','Pampers Baby Dry Pants Diapers Monthly Mega Box,128 Count','Pam
pers Premium Care Pants Diapers,'Pampers Premium Care Pants Diapers,54 Count',XXL,30 Count','Pamp
ers Premium Care Pants Diapers Monthly Box Pack,'Pampers Premium Care Pants D
iapers,44 Count','Supples Baby Pants Diapers,'Pampers Premium Care Pants Diape
rs,'Pampers Active Baby Diapers - 62 Pieces (Medium)',42 Count','Pamp
ers Diaper Pants,New Baby,36 Count','Pampers New Diaper Pants,58 Count',66 Count',16 Count',Medium (Pack of
200)',Extra Large,34 Count',38 Count',46 Count',XXXL,7 Count',Extra Large (Pack of 136)',Large (P
ack of 168)',172 Count',28
Count',20 Count','Pampers Baby Dry Diaper Pants,Large (60 Count)','Pampers Pre
mium Care Pants Diapers,24 Count','Accupressure for Babies : Pamper your toddler with a gentle massage! (New Mom Series)',17 Count',21 Count','Pampers New Diaper Pants Super
Value Box,Small (Pack of 224)','Pampers Splashers Disposable Swim Pants Diapers,11 Count',90 Count','Pampers Active
Baby Diapers,'Pampers Premium Care Super Value box pack,Large Size Diapers,50 Count']
............. ............. (相同的列表被打印60次) ............. .............
['Pampers Premium Care Pants Diapers,'MamyPoko Pants Standard Diapers,'Pampers New Diaper Pants SuperValue Box,50 Count']
解决方法
您要在xpath(.
)中添加.//h2/a/span/text()
以获取单个值,并使用get()
methot返回第一个值,而不是使用extract()
来返回列表值
for item in result:
for product in item.xpath("//div[@data-component-type='s-search-result']"):
print(product.xpath(".//h2/a/span/text()").get())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。