UPDATE:关于我的第二个问题(如何将字符串转换为日期格式在MySQL),我找到了一种方法,并希望分享它:Xpath的提取日期
1)保存该“字符串日期”的数据作为VARCHAR(不要使用TEXT)
2)当表示PHP或其他方式的MySQL数据,使用STR_TO_DATE(字符串日期栏,日期格式的功能),如以下示例:
$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]
那么,如何让“2015年5月15日”的只有一部分?如果可以这样做,如何将抓取的字符串(2015年5月15日)转换为真正的DATE数据,因此可用于排序?谢谢一堆!
您的”scrapic“方法非常完美,alecxe!你有没有关于使用“[u'15 May 2015']”输出作为日期而不是字符串的建议,同时在整个图片中考虑scrapy和mysql的使用情况?如果我将该列定义为“日期”类型,MySQL是否会自动将“[u'15 May 2015']”识别为日期? – LearnAWK
@LearnAWK我建议您更加明确并且使用实际日期进行操作 - 它也会在早期发现错误并提供额外的验证。 – alecxe