Python 使用scrapy和xpath时如何使用count()

Python 使用scrapy和xpath时如何使用count(),python,xpath,scrapy,Python,Xpath,Scrapy,我正在使用scrapy来处理一些解析工作 def parse_2(self,response): sel = Selector(response) sites = sel.xpath('//div[@class="container"]') courses = [] for site in sites: course = CourseItem() course['rating'] = site.xpath("count(//div[@class

我正在使用scrapy来处理一些解析工作

def parse_2(self,response):
   sel = Selector(response)
   sites = sel.xpath('//div[@class="container"]')
   courses = []
   for site in sites:
       course = CourseItem()
       course['rating'] = site.xpath("count(//div[@class='span5'])")
       ……
我想在xpath中使用count函数来计算一些节点的数量,但有点不对劲。 与异常类似。AttributeError:“Selector”对象没有属性“decode”

您只需使用计数器python函数len:

count = len(site.xpath("//div[@class='span5']"))
希望能有所帮助;
注意。

您只需使用计数器python函数len:

count = len(site.xpath("//div[@class='span5']"))
希望能有所帮助; 问候。

您可以尝试以下方法:

length = len(site.xpath("//div[@class='span5']").getall())
您可以尝试以下方法:

length = len(site.xpath("//div[@class='span5']").getall())

您能给出一些示例输入和所需输出吗?您完整的Spider代码和适当的URL也会很有用我认为您只需要对.xpath结果调用.extract即可:course['rating']=site.xpathcount//div[@class='span5'].extract。此外,我认为循环中的XPath表达式应该是相对的:course['rating']=site.xpathcount//div[@class='span5']。extract,即在Container类的每个div中使用类span5计算div。您可以给出一些示例输入和所需输出吗?您完整的Spider代码和适当的URL也会很有用我认为您只需要对.xpath结果调用.extract即可:course['rating']=site.xpathcount//div[@class='span5'].extract。另外,我认为循环中的XPath表达式应该是相对的:course['rating']=site.xpathcount//div[@class='span5']。extract,即在类容器的每个div中使用类span5计算div