gpt4 book ai didi

python - Xpath 提取某些字符之间的日期并用作日期

转载 作者:行者123 更新时间:2023-11-30 23:09:36 24 4
gpt4 key购买 nike

更新:关于我的第二个问题(如何在MySQL中将字符串转换为日期格式),我找到了一种方法并想分享它:

1) 将“字符串日期”数据保存为 VARCHAR(不要使用 TEXT)

2)当用PHP或者其他方式展示MySQL数据时,使用str_to_date(string-date-column,date-format)函数,比如下面示例:

$sql = "SELECT * FROM yourtablename ORDER BY str_to_date(string-date-column, '%d %M %Y')";
<小时/>

我正在使用scrapy收集数据,写入数据库。从网站上,每个项目的发布日期列出如下:

<p>   #This is the last <p> within each <div>
<br>
[15 May 2015, #9789]
<br>
</p>

因此日期始终位于“[”后面和“,”之前。我使用以下xpath代码来提取:

sel.xpath("p[last()]/text()[contains(., '[')]").extract()

但我会得到整行:

[15 May 2015, #9789]

那么,如何只获取“15 May 2015”的部分内容呢?如果可以做到这一点,如何将抓取的字符串(2015年5月15日)转换为真正的DATE数据,以便它可以用于排序?非常感谢!

最佳答案

关于第一个问题,假设一次最多有一个日期,可以使用 XPath substring-after()substring-before() 的组合获取文本节点的 15 May 2015 部分的函数:

substring-before(substring-after(p[last()]/text()[contains(., '[')], '['), ',')

关于第二个问题,可以使用datetime.strptime()将字符串转换为日期时间:

import datetime

result = datetime.datetime.strptime("15 May 2015", "%d %b %Y")
print(result)
print(type(result))

输出:

2015-05-15 00:00:00
<type 'datetime.datetime'>

关于python - Xpath 提取某些字符之间的日期并用作日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31095046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com