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