我是靠谱客的博主 多情小伙,最近开发中收集的这篇文章主要介绍pythonrequest请求下载csv文件保存_通过Python的requests库爬取数据并保存为csv文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

同时推荐前面作者另外两个系列文章:

很多人学习python,不知道从何学起。

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:961562169

快速入门之Tableau系列:快速入门之Tableau

快速入门之爬虫系列:快速入门之爬虫

一、选择数据源

好了知道上面的我们就可以准备开始了。

首先我们先导入包和设置代理头

import requests

import pandas as pd

import time

pd.set_option(‘max_rows‘,500)

headers = { ‘user-agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0‘}

url = ‘https://c.m.163.com/ug/api/wuhan/app/data/list-total‘ # 定义要访问的地址

r = requests.get(url, headers=headers) # 使用requests发起请求

这个时候我们请求以下:

?

由上图我们可以看到返回后的内容是一个几十万长度的字符串,由于字符串格式不方便进行分析,并且在网页预览中发现数据为类似字典的json格式,所以我们将其转为json格式。

import json

data_json = json.loads(r.text)

data_json.keys()

?

我们可以看出在data中存放着我们需要的数据,因此我们取出数据。

data = data_json[‘data‘]

data.keys()

?

数据中总共有四个键,每个键存储着不同的内容:

接下来我们开始获取实时数据。

三、整体代码实现

# =============================================

# --*-- coding: utf-8 --*--

# @Time : 2020-03-27

# @Author : 不温卜火

# @CSDN : https://blog.csdn.net/qq_16146103

# @FileName: Real-time epidemic.py

# @Software: PyCharm

# =============================================

import requests

import pandas as pd

import json

import time

pd.set_option(‘max_rows‘,500)

headers = {‘user-agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0‘}

url = ‘https://c.m.163.com/ug/api/wuhan/app/data/list-total‘ # 定义要访问的地址

r = requests.get(url, headers=headers) # 使用requests发起请求

data_json = json.loads(r.text)

data = data_json[‘data‘]

data_province = data[‘areaTree‘][2][‘children‘]

areaTree = data[‘areaTree‘]

class spider_yiqing(object):

# 将提取数据的方法封装成函数

def get_data(data, info_list):

info = pd.DataFrame(data)[info_list] # 主要信息

today_data = pd.DataFrame([i[‘today‘] for i in data]) # 提取today的数据

today_data.columns = [‘today_‘ + i for i in today_data.columns]

total_data = pd.DataFrame([i[‘total‘] for i in data])

total_data.columns = [‘total_‘ + i for i in total_data.columns]

return pd.concat([info, total_data, today_data], axis=1)

def save_data(data,name):

file_name = name+‘_‘+time.strftime(‘%Y_%m_%d‘,time.localtime(time.time()))+‘.csv‘

data.to_csv(file_name,index=None,encoding=‘utf_8_sig‘)

print(file_name+‘保存成功!‘)

if __name__ == ‘__main__‘:

today_province = get_data(data_province, [‘id‘, ‘lastUpdateTime‘, ‘name‘])

today_world = get_data(areaTree, [‘id‘, ‘lastUpdateTime‘, ‘name‘])

save_data(today_province, ‘today_province‘)

save_data(today_world, ‘today_world‘)

4、总结

此程序代码有些许混乱,层次感不强。还有可能还有更高效的爬取手段。

最后

以上就是多情小伙为你收集整理的pythonrequest请求下载csv文件保存_通过Python的requests库爬取数据并保存为csv文件的全部内容,希望文章能够帮你解决pythonrequest请求下载csv文件保存_通过Python的requests库爬取数据并保存为csv文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部