前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【爬虫军火库】生成指定日期间的日期列表

【爬虫军火库】生成指定日期间的日期列表

作者头像
不二小段
发布于 2018-04-08 03:58:43
发布于 2018-04-08 03:58:43
1.4K00
代码可运行
举报
文章被收录于专栏:不二小段不二小段
运行总次数:0
代码可运行

今天没能空下来时间写太多,所以只简单记录一个很具体的需求:

指定了起止日期,如何生成一个日期列表。

这个需求是我之前在抓取一个环保的历史数据时遇到的:

如图,在这个页面上,我们需要手动通过日期控件选择日期,点击查询后,浏览器会向服务器发出POST请求,而POST的数据便是这一天的日期格式。

因此,假如我们需要自动化大量抓取数据,就需要实现生成指定日期间的日期列表。

当时尝试了许多办法,都感觉不太方便,最后是这么实现的(源自知乎某位匿名用户的回答)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import datetime
def datelist(start, end):
    start_date = datetime.date(*start)
    end_date = datetime.date(*end)
    result = []
    curr_date = start_date
      while curr_date != end_date:
        result.append("%04d-%02d-%02d" % (curr_date.year, curr_date.month, curr_date.day))
        curr_date += datetime.timedelta(1)
    result.append("%04d-%02d-%02d" % (curr_date.year, curr_date.month, curr_date.day))
    return result
print(datelist((2013, 2, 27), (2013, 3, 3)))

后来又遇到别人写的解法,更加简洁明了。(https://www.zhihu.com/question/35455996/answer/152161065):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
from datetime import datetime
def datelist(beginDate, endDate):
    # beginDate, endDate是形如‘20160601’的字符串或datetime格式
    date_l=[datetime.strftime(x,'%Y-%m-%d') for x in list(pd.date_range(start=beginDate, end=endDate))]
    return date_l
print(datelist(20130206, 20130303))

分享给大家,以备遇到相似需求。

查看当时环保数据爬虫的详情:https://www.zhihu.com/question/41136540/answer/89765276

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不二小段 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据获取 | 如何下载指定时间范围的1°分辨率的FNL数据
由于可视化代码过长隐藏,可点击运行Fork查看 若没有成功加载可视化图,点击运行可以查看 ps:隐藏代码在【代码已被隐藏】所在行,点击所在行,可以看到该行的最右角,会出现个三角形,点击查看即可
用户11172986
2024/12/05
1220
数据获取 | 如何下载指定时间范围的1°分辨率的FNL数据
python下载指定时段的gdas1数据
GDAS1(Global Data Assimilation System, 1-degree)数据是由美国国家环境预报中心(NCEP)提供的全球资料同化系统产品之一。该系统通过整合全球各地的气象观测数据(如卫星、雷达、地面站等观测资料),运用先进的数值模拟和数据分析技术,生成高精度的全球大气状态三维格点数据。这些数据覆盖了大气的多个层次,包括温度、湿度、风速、气压等多个气象变量,其空间分辨率为0.25度×0.25度,时间分辨率为每6小时更新一次。
用户11172986
2024/06/20
2370
python下载指定时段的gdas1数据
python下载fnl数据
这些NCEP FNL(最终)作战全球分析数据位于每六小时作战准备的1度乘1度网格上。该产品来自全球数据同化系统(GDAS),该系统持续收集来自全球电信系统(GTS)和其他来源的观测数据,用于许多分析。FNL是用NCEP在全球预报系统(GFS)中使用的相同模型制作的,但FNL是在GFS初始化后约一小时左右准备的。FNL被延迟,以便可以使用更多的观测数据。GFS运行较早,以支持时间关键型预测需求,并使用前6小时周期的FNL作为其初始化的一部分。
用户11172986
2024/06/20
1660
python下载fnl数据
Python 抓取新闻稿语料库
新闻联播是最权威的新闻来源,用语规范,内容涉及时政和社会的方方面面,对生活生产有着很强的指导意义。
不二小段
2020/02/12
1.7K0
django 时间 日期查询
1、gt:大于某个时间 now = datetime.datetime.now() #前一天 start = now – datetime.timedelta(hours=23, minutes=59, seconds=59) a=yourobject.objects .filter(youdatetimcolumn__gt=start) 2、gte:大于等于某个时间: a=yourobject.objects .filter(youdatetimcolumn__gte=start) 3、
kirin
2020/11/11
3.6K0
质量看板开发实践(三):bug柱状图
el-date-picker组件也对应的有4种形式,当切换不同日期维度时,显示对应的日期组件
冰霜
2022/04/07
3.2K0
Contest100000578 – 《算法笔记》3.4小节——入门模拟->日期处理
http://codeup.cn/contest.php?cid=100000578 Problem A: 日期差值 Time Limit: 1.000 Sec Memory Limit: 32 M
可定
2020/04/20
4240
Python日期范围按旬和整月以及剩余区间拆分
可以叫我才哥
2024/01/02
1900
Python日期范围按旬和整月以及剩余区间拆分
教你用SQL生成一张带「农历」的日期维度表
农历与世界通用的日历有所区别,是科学家演算出来的,目前为止只有到2049年的,以后的有了还可以加入!
SQL数据库开发
2024/04/25
2540
教你用SQL生成一张带「农历」的日期维度表
【C/C++】“秒懂”学C/C++不可错过的“经典编程题” — 日期类的经典运用 (含题链接)
通过函数GetMonthDay(int year, int month)可以轻松得到某年某月天数(0月是0天),看图片右边,我们先将3月天数15单独放一边,让3月先减1得到2,然后通过函数得到2月天数,将其保存再sum中,然后月份再减1,得到1月天数,累加到sum(初始化为0)中,直到月份为0;这里我们就得到了1月加2月的天数,最后输出的时候我们把单独放在一边的3月的天数加上。 其他日期道理相同,因此得到代码:
六点半就起.
2024/10/16
790
【C/C++】“秒懂”学C/C++不可错过的“经典编程题” — 日期类的经典运用 (含题链接)
环保 HJ212协议解析
由于是做环保相关的,有时需要对212协议进行拆包和解包。HJ212协议是一种字符串协议,数据传输通讯包主要由包头、数据段长度、数据段、CRC校验、包尾组成,其中“数据段”内容包括请求编码、系统编码、命令编码、密码、设备唯一标识、总包数、包号、指令参数。请求编码为请求的时间戳,系统编码ST统一规定为22,命令编码CN为该数据包的时间类型,访问密码、设备唯一标识在对接时由平台提供,指令参数为数据内容。通讯协议的数据结构如图4所示。
ccf19881030
2020/09/22
3.2K0
环保 HJ212协议解析
python3 根据时间获取本月一号和月末日期
https://blog.csdn.net/gou_can/article/details/88052875
py3study
2020/03/13
8510
js时间戳转换日期格式和日期计算
一、时间戳转换日期 1 function formatDate(datetime) { 2 // 获取年月日时分秒值 slice(-2)过滤掉大于10日期前面的0 3 var year = datetime.getFullYear(), 4 month = ("0" + (datetime.getMonth() + 1)).slice(-2), 5 date = ("0" + datetime.getDate()).
半指温柔乐
2018/09/11
29.3K0
MySQL周期表管理太繁琐,通过Python自定义工具方法优雅解决
最近的数据库小问题还是零零散散会出现,通过这些零星的小问题可以发现很多潜在问题的端倪。 所以准备在一些技术储备方面要多投入一些,把这些基础打扎实。
jeanron100
2019/11/11
6140
MySQL周期表管理太繁琐,通过Python自定义工具方法优雅解决
又肝了3天,整理了80个Python DateTime 例子,必须收藏!
日常工作中,用 Python 处理时间格式的数据是非常常见的,今天就来分享 DateTime 相关的示例
周萝卜
2021/10/25
8.9K0
python时间处理详解
1.获取当前时间的两种方法: import datetime,time now = time.strftime("%Y-%m-%d %H:%M:%S") print now now = datetime.datetime.now() print now 2.获取上个月最后一天的日期(本月的第一天减去1天) last = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1
Java学习123
2021/12/28
5030
python生成全年日期表
#!usr/bin/env python # encoding:utf-8 # from __future__ import division import requests import json from dateutil.relativedelta import relativedelta import math import logging import os import sys # from datetime import datetime from odps import ODPS,Dat
chimchim
2022/11/13
7510
别再造假数据了,来试试 Faker 这个库吧!
在做程序开发的时候,我们经常会用到一些测试数据,相信大多数同学是这么来造测试数据的:
崔庆才
2019/08/09
8080
质量看板开发实践(四):按照bug优先级、状态绘制饼图
上一篇完成了按照日期范围查询bug的柱状图,本篇承接前面的内容,绘制2个饼图,分别按照bug优先级和bug状态进行统计
冰霜
2022/04/18
5400
质量看板开发实践(四):按照bug优先级、状态绘制饼图
C风格简易本地log系统
该C风格简易log日志系统,适合与Linux平台系统,主要用于格式化输出日志到本地指定的文件中,可指定log文件数目、最大大小、行数、按时间切换等功能,可满足基本的log日志功能。从项目中提炼出来,附上使用的demo,简单易懂,能快速上手。具体接口说明,参见源码。
恋喵大鲤鱼
2018/08/03
8650
相关推荐
数据获取 | 如何下载指定时间范围的1°分辨率的FNL数据
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文