Я использую dateparser в scrapy для преобразования формата даты.

Исходный формат даты: Apr 16, 2019

После использования dateparser: 2019-04-16 00:00:00

Это то, чего я хотел достичь. Однако я все же хотел бы удалить время из формата даты, поэтому в итоге у меня есть только 2019-04-16. К сожалению, я не могу этого понять.

Это моя строка кода:

import dateparser

...

def parse_site(self, response):
        def get_with_xpath(query):
             return response.xpath(query).get(default='').strip()
        yield {
            'date': dateparser.parse(get_with_xpath('//meta[@name="date"]/@content'))
        }

Как я уже сказал, это работает. Но отметку времени я бы хотел удалить. Есть идеи?

0
Dan 16 Апр 2019 в 06:47

2 ответа

Лучший ответ

Dateparser.parse возвращает datetime, представляющий проанализированную дату в случае успеха. Вы можете использовать функцию strftime () для удаления метки времени, как показано ниже

dateparser.parse('Apr 16, 2019').strftime("%Y-%m-%d")

1
Janki Vyas 16 Апр 2019 в 06:30

Методы этой библиотеки возвращают все значения в формате datetime. Но после этого вы можете делать с ними все, что захотите. Проверьте этот пример:

>>> import dateparser
>>> dateparser.parse("Apr 16, 2019")
datetime.datetime(2019, 4, 16, 0, 0)
>>> dateparser.parse("Apr 16, 2019").date()
datetime.date(2019, 4, 16)
1
vezunchik 16 Апр 2019 в 06:09