首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Python实现web抓取的周期性执行

用Python实现web抓取的周期性执行
EN

Stack Overflow用户
提问于 2016-01-23 05:39:59
回答 1查看 97关注 0票数 0

这是我的想法和我的早期工作。

我的目标

  • 从中国政府连续提取1小时分辨率空气污染数据。
  • 该网站从全国监测站点收集的数据每小时更新一次。

我的密码

现在,我可以在一小时内获取有用的信息。这是我的代码:

  1. 输入不同污染的网站链接(co,no2,pm10等) urllib.urlopen("http://www.pm25.in/api/querys/co.json?city=beijing&token=5j1znBVAsnSf5xQyNQyq").read().decode('utf-8') html_no2 = urllib.urlopen("http://www.pm25.in/api/querys/no2.json?city=beijing&token=5j1znBVAsnSf5xQyNQyq").read().decode('utf-8') html_pm10 = urllib.urlopen("http://www.pm25.in/api/querys/pm10.json?city=beijing&token=5j1znBVAsnSf5xQyNQyq").read().decode('utf-8')
  2. 获取html文档的内容。 soup_co = BeautifulSoup(html_co) soup_no2 = BeautifulSoup(html_no2) soup_pm10 = BeautifulSoup(html_pm10)
  3. 从整个内容中提取有用的信息。 L= soup_co.p.get_text() co= json.loads(l) l= soup_no2.p.get_text() no2= json.loads(l) l= soup_pm10.p.get_text() pm10= json.loads(l)
  4. 将原始数据压缩到整洁的Pandas.Dataframe中。 数据={“时间”:[],“站”:[],“代码”:[],"co":[],"no2":[],"pm10":[]}len(Pm10)-1,1:## 'station‘是中文数据“.append(Coi)data”time“.append”data“co”.append ## 'code’中监测站的名称,是监测站的索引数据“代码”.append数据“no2”.append(No2i)数据“pm10”.append(Pm10i)

我的结果

一些预解释

  • 忽略表中的汉字。
  • 我只获取一个城市(北京这里)的数据,索引从0-11通知北京有12个监测点。
  • 柱‘co’/‘NO2’/‘co 10’代表这些空气污染物的浓度。 http://i8.tietuku.com/cf59fbec6f89566d.png

我的问题

现在,我可以根据上面的代码手动抓取网页数据。但是,我想要实现每小时以下的工作流程自动

小时一

  • 执行代码
  • (1)从网站上获取1小时空气污染物数据;
  • (2)根据真实日期(如20160101.csv)将数据保存到.csv中。

一个小时后。

  • 执行代码
  • (1)从网站上获取1小时+1小时空气污染物数据;
  • (2)根据真实日期将数据保存到.csv中。 如果是同一天,相当于I->相同的.csv(比如2016-01-01.csv) 如果今天已经过去->创建一个新的.csv(比如2016-01-02.csv)

我以前从没做过这种事。有人能给我一些建议吗?

因此,我可以获得一个有用的数据抓取工具运行在后台,我不必担心它。

EN

回答 1

Stack Overflow用户

发布于 2016-01-23 13:02:22

如果您不关心您的程序,只需等待一个小时,您就可以:

代码语言:javascript
运行
复制
def func(): 
    print('Time has passed')

while True:   
    delay = 1 * 60 * 60 # x hrs * 60 mins * 60 sec (waiting time in hrs)
    func()              # run your code
    time.sleep(delay)   # wait

这是v,在程序休眠时不允许您做任何事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34960065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档