python疫情历史数据和最新数据

        最近写数学建模,一直找不到历史的数据,让我很苦恼。只能靠自己了

然后我去学习了几天python pacho,终于可以看懂代码了,随意爬取任意国家,地区的新冠历史数据了,下面来说一下吧

一、分析数据接口

1.进入海外疫情主页,分析海外各国疫情历史数据接口:

python疫情历史数据和最新数据_第1张图片

进去按F12,出现以上画面,再按CTRL+R进行加载,一段时间后点击红色的按钮暂停。

找到存放你想要的数据的地方

python疫情历史数据和最新数据_第2张图片

 python疫情历史数据和最新数据_第3张图片

接下来就是伪装是浏览器打开的了,不然就会被识别是python

把内容放到header={}中以字典的形式

中国历史疫情数据

class Scraper():

    def __init__(self):
        self.apiUrl = "https://2019ncov.chinacdc.cn/JKZX/gb_yq_{}.json"
        
        self.header = {'Upgrade-Insecure-Requests': '1',
                       'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
                       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
                       'Accept-Encoding': 'gzip, deflate, sdch',
                       'Accept-Language': 'zh-CN,zh;q=0.8',
                       'Connection': 'close'
                       }

        self.proxies = { "http": None, "https": None}

    def download(self,startDate, endDate):
        date = datetime.strptime(startDate, "%Y%m%d")
        end = datetime.strptime(endDate, "%Y%m%d")
        j = 0
        Data = []
        while date <= end:
            currentDate = date.strftime('%Y%m%d')
            print(currentDate)
            date = date + timedelta(days=1)
            url = self.apiUrl.format(currentDate)

            response = requests.get(url,headers = self.header)
            city_list = json.loads(response.text)
            data = []
            
            df = city_list['features'][1]['properties']
            data.append(df)
            df[j] = pd.DataFrame(data)
            df[j].drop(['OBJECTID','globe_OBJECTID','name_cn','globe_中文名','globe_Shape_Leng','Shape_Length','Shape_Area'],axis=1,inplace=True)
            Data = pd.DataFrame(Data)
            Data = pd.concat([Data, df[j]], axis=0)
            j += 1
        Data.to_csv('Data.csv',encoding='utf-8-sig')

if __name__ == "__main__":
    spider = Scraper()
    spider.download('20220401', '20220506')#改自己想要的历史数据

同理,可以爬取任何地方的历史数据。

因为有很多内容平台不能说 ,所以无法分享。

有不懂的地方可以联系我,或要数据的私信我吧!

 python疫情历史数据和最新数据_第4张图片

数据可视化

python疫情历史数据和最新数据_第5张图片

python疫情历史数据和最新数据_第6张图片

你可能感兴趣的:(python爬虫,数据挖掘,数据分析,人工智能)