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

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

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

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

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

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

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

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):

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

原文发布于微信公众号 - 不二小段(rose-fun)

原文发表时间:2017-12-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

Android上学习ARM指令集系列第一篇

打算为入门ARM指令集写点初级文章,没什么远大理想,写到哪里算哪里,权当娱乐罢了。工作中经常碰到crash的问题,如果是debug版本,那还好, 调...

3488
来自专栏PhpZendo

深入理解 Laravel 管道

这是一篇译文,原文 Understanding Laravel Pipelines。

1232
来自专栏Play & Scala 技术分享

PlayScala 2.5.x - 实现完全异步非阻塞的流数据导出

2884
来自专栏数据小魔方

R语言爬虫实战——网易云课堂数据分析课程板块数据爬取

R语言的爬虫生态虽然与Python相比要弱小很多,but,如果你真的想要用R干一些有趣的事情,那么R语言目前所具有的的网络爬取工具也能给你带来很多方便。 今天...

3794
来自专栏云计算教程系列

如何在Ubuntu 14.04上为IRC安装Lita Chat Bot

许多现代DevOps团队在聊天室周围建立了越来越多的基础设施。有很多聊天室,从商业选项(如HipChat和Slack)到DIY选项(如IRC或Jabber / ...

731
来自专栏申龙斌的程序人生

零基础学编程004:集成开发环境IDE

几天前介绍了《用在线编程环境快速上手》学习Python等编程语言,这种教学环境中的例子都非常简单,你不需要在自己的电脑中安装任何的软件,就可以马上动手学习Pyt...

3205
来自专栏机器学习算法与Python学习

Python:爬虫系列笔记(1) -- 综述

转自:静觅 » Python爬虫入门一之综述 大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果...

3344
来自专栏前端大白专栏

基于mpvue开发微信小程序(项目已开源)

花了两周时间,我的微信小程序终于开发完了(平时上班,基本上都是业余时间开发的). 下面来介绍一下项目的功能以及结构. 用到的技术栈 vue2+weui+es6;...

5489
来自专栏数据科学与人工智能

【Python环境】Scrapy爬虫轻松抓取网站数据

网络爬虫(Web Crawler, Spider)就是一个在网络上乱爬的机器人。当然它通常并不是一个实体的机器人,因为网络本身也是虚拟的东西,所以这个“机器人”...

37010
来自专栏来自地球男人的部落格

python中scrapy点击按钮

最初遇到的问题的是在用scrapy爬取微博时需要按照指定关键字来爬取特定微博,主要还是解决需要输入关键字然后点击搜索按钮的问题。于是: 首先 找了scrapy的...

3707

扫码关注云+社区

领取腾讯云代金券