前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >scrapy笔记——python的时间转换

scrapy笔记——python的时间转换

作者头像
sean.liu
发布2022-08-03 14:53:48
3780
发布2022-08-03 14:53:48
举报
代码语言:javascript
复制
import datetime
GMT_FORMAT = '%M %H %d %m %w'
datetime.datetime.utcnow().strftime(GMT_FORMAT)
代码语言:javascript
复制
#按corn格式显示当前时间
#minute hour day month dayofweek
import datetime
CORN_FORMAT = '%M %H %d %m %w'
datetime.datetime.utcnow().strftime(CORN_FORMAT)

操作系统:fedora 开发语言:python 爬虫框架:scrapy 数据库:mysql 数据库连接模块:mysqldb 将网页生成时间和网页抓取的当前时间输入到数据库中。 在执行代码时,出现Warning: Out of range value for column 'f_grap_time' at row 1这样的错误。直接翻译是,数据位数超过字段能存的最大长度。

问题原因:

事实上是数据格式的问题。上传时数据直接调用了网页http头的Date和time函数返回的时间。但是数据库要求是datetime格式。 抓下的网页的 response.headers["Date"]保存了网页的生成时间,读取出来其实就是字符串。格式类似这样“Wed, 04 Jun 2014 13:06:02 GMT'。 使用time函数得出的时间是一个浮点数,类似“1401887801.07”。 数据库要求的输入格式是datetime格式,可以是11位的10进制数字,或者“2014-06-04 13:06:02“形式的字符串。

解决方法:

使用strftime和strptime函数,有点类似c语言的printf和scanf形式。 strftime函数可以把datetime格式转换成指定格式的字符串。strptime函数则是反过来,把字符串转换成datetime格式。 注意:两个函数都需要datetime包

代码语言:javascript
复制
#首先对于网页时间格式转换成datetime。strftime函数用法后面讲。
GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT' 
#输出格式的模式字符串
TIME = 'Wed, 04 Jun 2014 13:06:02 GMT'
#对应的时间字符串
datetime.datetime.strptime(TIME, GMT_FORMAT)
代码语言:javascript
复制
#当前时间可以直接使用datetime不需要time包
datetime.datetime.now()
PS:
代码语言:javascript
复制
#strftime用法
# http包头时间格式显示当前时间
GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT' 
datetime.datetime.utcnow().strftime(GMT_FORMAT)</pre>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年6月4日13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题原因:
  • 解决方法:
  • PS:
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档