Home > Mobile >  Parse date string from scrapy
Parse date string from scrapy

Time:01-24

How is it possible to sort / reorder a text string and reformat it as follows?

My code:

details = response.xpath('//div[@]')
for detail in details:
    released = detail.xpath('.//ul/li[1]/span[1]/span/text()').get()
    item['released'] = released
    yield item

My output:

Released 2021, September 24

Desired output:

  1. September, 2021

or

24.09.2021

CodePudding user response:

It has nothing to do with scrapy, as this is a simple string parsing problem.

For example, you might want to try this, provided that released is a string value like Released 2021, September 24:

import datetime

released = "Released 2021, September 24".replace("Released ", "")
print(datetime.datetime.strptime(released, '%Y, %B %d').strftime("%d.%m.%Y"))

Output:

24.09.2021

To get the longer output:

print(datetime.datetime.strptime(released, '%Y, %B %d').strftime("%d. %B, %Y"))

Output:

24. September, 2021

EDIT:

In order to apply it in your code, try this:

details = response.xpath('//div[@]')
for detail in details:
    released = detail.xpath('.//ul/li[1]/span[1]/span/text()').get()
    item['released'] = datetime.datetime.strptime(released.replace("Released ", ""), '%Y, %B %d').strftime("%d.%m.%Y")
    yield item
  •  Tags:  
  • Related