最近更新
🌟上节回顾
我们通过前面的学习了解到了 CSV 文件的写入和读取方式。这也是一种常用的数据存储方式,需要我们熟练掌握。我们通过介绍了,CSV是一种常用的文件格式,可以用于存储纯文本数据,并且每行数据都使用逗号分隔。看看今天学啥吧。
⭐️CSV操作实战
我们前面学习了理论知识,那么我们今天来和大家介绍学习一下CSV实战操作,看看前面学习的效果怎么样,今天,这个案例,特别简单。通过这个案例,大家就可以举一反三,怎么保存成CSV文件。
🌟确定目标
首先,我们对目标网址进行数据采集。我们可以清楚的看到,在2022年中新财富500富人榜。我们现在想把数据保存下来,发现复制粘贴太麻烦,我们就借助python工具,可以我们数据获取下来,怎么保存到本地呢。这里,我们用之前学到的方法,用字典的方法写入数据。保存成CSV文件。那么,下面看看怎么操作吧。
确定好我们的目标网址之后,我们要找到我们需要的数据源,通过开发者工具分析,我们不难发现其数据地址。
🌟获取数据
我们首先发送请求,获得数据。然后解析数据,获取我们想要的数据,因为,我们之前说过,没有讲怎么保存数据,本文重点讲如何保存数据,保存成CSV文件。
import requests
url = 'https://service.ikuyu.cn/XinCaiFu2/pcremoting/bdListAction.do?method=getPage&callback=jsonpCallback&sortBy=&order=&type=4&keyword=&pageSize=15&year=2022&pageNo=1&from=jsonp&_=1680092323527'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'}
res = requests.get(url,headers=headers)
html_data = re.findall('jsonpCallback\((.*?)\)',res.text)[0]
我们发现,我们得到了这样jsonpCallback()
的数据,可能就有人担心了,那这种情况,我们该怎么办呢,不要慌,我们只需要正则表达式就可以。
🌟写入字典
我们把刚刚获取到的数据,写入字典,我们看看代码怎么实现。
for index in json.loads(html_data)['data']['rows']:
# print(index)
dit = {
'姓名':index['name'],
'财富值':index['assets'],
'主要公司':index['company'],
'相关行业': index['industry'],
'公司总部':index['addr'],
'排名': index['rank'],
}
我们先把数据存入到字典里面,然后,方便我们写入csv文件里面,我们看看打印出来的字典数值是怎么样子的。
🌟保存CSV
下面就是数据的写入了。其实,把字典数值写入到csv文件里面,特别简单,只需呀四行代码就可以实现。
我们在这里注意一下,在保存CSV文件时,需要使用有效的编码方式。如果使用不同的编码方式,则可能会导致数据处理过程中出现问题。例如,如果CSV文件中包含中文字符,则需要使用UTF-8编码方式保存文件。
f = open('财富榜.csv',mode='a',encoding='utf-8',newline='')
csv_writer = csv.DictWriter(f,fieldnames=['姓名','财富值','主要公司','相关行业','公司总部','排名'])
csv_writer.writeheader()
下面我们直接写入字典数值。这样就把字典里面的内容写入到了CSV文件里面。
csv_writer.writerow(dit)
这时候,我们就会在文件夹里面找到财富值的csv文件,我们打开看看效果。
在这里,我只采集了第一页的数据,也就是前15的数据,如果,我们想进行多页数据采集,只需要对网址进行改变,我们会发现网址有相似的规律。直接for循环遍历就可以,这里,就不过多解释。
总结
我们在学完这个案例之后,大家就会明白这个其实很简单,其他的只需要模仿这个来写就可以了。
CSV文件实战需要考虑多个方面,包括选择合适的文件格式、设置正确的文件头、使用有效的编码方式等。我们这里就不过多介绍,我们还是数据库用到的机会比较大。