城市量化研究-PM2.5数据分析-配置云端服务器

城市量化研究-PM2.5数据分析-配置云端服务器

前言

让我们的爬虫能够按照特定时间运行,将我们的代码放在云服务器上运行,因为像这类数据,一般网站会定时更新数据,将我们的爬虫放在云端服务器上执行,非人为因素,我们的代码可以一直跑下去。这样我们可以获取一个月、一年乃至更长的数据。
使用库 schedule arrow

需要库

import schedule
import arrow

将前一步代码进行优化
想对你说的都在代码里

import requests
from lxml import etree
import pandas as pd
import schedule
import arrow
import time

def main(date):
    t1 = time.time() # 用来计算爬取一次的时间
    res = requests.get('http://www.pm25.in').text
    res = etree.HTML(res)
    data = res.xpath("//div[@class='bottom']//li/a/@href")

    for url in data[:2]:
        url = 'http://www.pm25.in' + url
        print(url)
        res = requests.get(url).text
        res = etree.HTML(res)
        data = res.xpath("//tbody//tr")
        dts = [] # 装每条数据的空列表
        date_r = date # 添加日期
        hr = arrow.now().format('HH') # 添加小时
        city = res.xpath('//h2/text()')[0]
        for td in data:
            lst = []# 存放一条数据的列表
            lst.append(date_r)
            lst.append(hr) # date_r 与hr都是为了写入数据的时候看时间
            lst.append(td.xpath('td[1]/text()')[0])
            lst.append(td.xpath('td[5]/text()')[0])
            lst.append(res.xpath('//h2/text()')[0])
            dts.append(lst)
        df = pd.DataFrame(dts) # 转成数据框
        df.to_csv('./data-pm2{}.csv'.format(date),mode='a',header=False,encoding='utf-8') # 存为CSV文件
        # mode = 'a'追加,header=False,不要表头 encoding='utf-8' 防止乱码
        print('完成',city)
        print('='*30)
    t2 = time.time()
    print('all finish')
    print(t2-t1) # 计算时间

if __name__=='__main__':
    def process_pm25():
    # 我们定义这个执行函数
        date = arrow.now().format('YYYY-MM-DD') # 格式化时间,为储存文件准备。
        main(date)
        print('running!')
    
schedule.every(0.1).minutes.do(process_pm25) # 设置我们云端服务器的休息时间
# schedule.every(10).hour.do(job)
# schedule.every(10).day.at('10:30').do(job)
# schedule.every(10).monday.do(job)
# schedule.every(10).wednesday.at('10:30').do(job)
# schedule.every(10).minutes.at(':30').do(job)

while True:
    schedule.run_pending() # 固定写法
    time.sleep(1) # 程序暂停

这里是重点

新的链接,传送门,更新于2023-9-28】
我们需要立即分析,我们需要拿到一年的数据,当然不能等一年后再来更新博文,所以感谢那些为建设美丽和谐社会做出杰出共享的人
传送门
在这里插入图片描述
另一个传送门
在这里插入图片描述
学习笔记来源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wency(王斯-CUEB)

我不是要饭的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值