Scrapy - python - 网络爬虫。输出所有xpath的列表,而不是仅匹配第一个

时间:2015-09-04 21:49:50

标签: python xpath web web-crawler scrapy

frame

目前,代码仅吐出xpath列表中的第一个匹配项。我希望它能从匹配的所有xpath中返回最大值。请指教。

这当然是我认为相关的代码的一个小节。如果您想查看其他任何代码,请访问https://github.com/eliangcs/pystock-crawler/tree/master/pystock_crawler

感谢您的时间和帮助!

1 个答案:

答案 0 :(得分:1)

这不起作用,因为add_xpaths函数在每次循环结束时返回一个值。这会导致循环在第一次运行后退出。相反,您需要将计数存储在变量中,并在您循环遍历整个数据结构时将其返回。

而不是:

def add_xpaths(self, name, paths):
    for path in paths:
        match_count = self.add_xpath(name, path)
         if match_count > 0:
             return match_count
    return 0

试试这个:

def add_xpaths(self, name, paths):
    match_count = 0
    for path in paths:
        match_count += self.add_xpath(name, path)
    return match_count