удаление нулевых данных с помощью скрапа - PullRequest
0 голосов
/ 27 апреля 2020

Я использую scrapy для очистки данных с определенного веб-сайта, но очищенные данные заполнены нулевыми значениями. Я не хочу этого, чтобы очистить свои извлеченные данные. Я изменил сценарий pipe.py. и это работало, когда я извлекаю одно или два значения, оно работает как шарм. но когда я извлекаю несколько значений и поскольку в каждой извлеченной строке есть хотя бы одно нулевое значение, алгоритм в итоге удаляет почти все мои данные. Есть ли способ, чтобы предотвратить это?

вот код, который я использовал для удаления нулевых данных


class ConfigSpiderPipeline(object):
    def process_item(self, item, spider):
        item['task_id'] = task_id
        if col is not None:
            if not(all(item.values())):
                raise DropItem()
            else:
                col.save(item)
                return item

1 Ответ

0 голосов
/ 29 апреля 2020

Если вы хотите отбросить только те элементы, у которых все значения равны None, вам следует использовать «любой» вместо всех:

class ConfigSpiderPipeline(object):
    def process_item(self, item, spider):
        item['task_id'] = task_id
        if col is not None:
            if not(any(item.values())):
                raise DropItem()
            else:
                col.save(item)
                return item

Или более четко:

class ConfigSpiderPipeline(object):
    def process_item(self, item, spider):
        item['task_id'] = task_id
        if col is not None:
            if any(item.values()):
                col.save(item)
                return item
            else:
                raise DropItem()

...