我正在使用Scrapy获取this Amazon website上产品的价格和名称。没有问题提取的价格,但我有问题的标题。区别在于我在class属性中看到了“aria hidded=true”。这是一个例子
<div class="p13n-sc-truncated" aria-hidden="true" data-rows="2" title="Igloo ICEB26HNAQ Automatic Self-Cleaning Portable Electric Countertop Ice Maker Machine With Handle, 26 Pounds in 24 Hours, 9 Ice Cubes Ready in 7 minutes, With Ice Scoop and Basket">Igloo ICEB26HNAQ Automatic Self-Cleaning Portable Electric Countertop Ice Maker Machine…</div>
以下是css选择器命令:
title = response.css('.p13n-sc-truncated').css('::text').extract()
我可以知道CSS选择器应该是什么来提取文本吗。谢谢
如果您查看html源代码(ctrl+u),您将看到产品标题确实有另一个类
p13n-sc-line-clamp-2
,它工作得非常好。因此,您的css选择器可以如下所示:下面是一个简单的工作示例:
如果要提取所有标题并将其从前导和尾随空格中删除,请将解析函数更改为以下内容:
您的代码很好:
我的猜测是,响应不包含预期的HTML。如果这是亚马逊,那是极有可能的。他们有相当多的反机器人措施
您可以通过XPATH来解决这个问题。 转到xpather并将html发送到那里并提取xpath模式
尝试使用漂亮的汤:
Beautiful Soup还依赖于解析器,默认为lxml
相关问题 更多 >
编程相关推荐