刮时如何删除输出中的报价?

时间:2019-04-29 05:42:08

标签: python scrapy

我正在抓取Dmoz网站,并且做了很多功能,但是我只想向您展示我所遇到的问题,那就是每当我打印输出时,我在黑白区域中得到的quotes都会不同地区,我想将其删除。我使用了strip中列表中的for loop来删除\r\n。但是我遇到了quotes的另一个问题。怎么处理呢?

以下是图片:

enter image description here

这是我的代码:

def Regional_category(self, response):
    items = response.meta['items']
    names = {'name1':'Regional_subcategories'
             # 'name2':'Related_Categories',
             # 'name3':'Site title',
             # 'name4':'Site Description'
             }
    finder = {'finder1': '.browse-node::text',
              # 'finder2': '.one-browse-node::text',
              # 'finder3': '.site-title::text',
              # 'finder4': '.site-descr::text',
              }
    for name, find in zip(names.values(), finder.values()):
        items[name] = list(map(str.strip,response.css(find.strip()).extract()))
        yield items

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么这些不仅是引号,而是空元素。 您可以尝试:

  1. css中检查您的finder选择器,并以更正确的方式构建它,以避免空数据;
  2. 或尝试手动过滤它们。这是示例,如何以更清晰的方式进行操作:
# I omit `find.strip()` since you have hardcoded values there
items[name] = [i.strip() for i in response.css(find).extract() if i.strip()]