我如何每天更新并保存数据到CSV文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何每天更新并保存数据到CSV文件?相关的知识,希望对你有一定的参考价值。
我想从一个网站记录covid数据,并每天更新新的案例。到目前为止,我已经成功地将案例的数量通过scraping放到了文件中,但每天我都必须手动输入日期并运行文件以获得更新的统计数据。我如何编写一个脚本,每天更新CSV,加入新的日期和新的案例数,同时保存旧的案例数以备将来使用?我写了这个并在Virtual Studio Code中运行。
import csv
import bs4
import urllib
from urllib.request import urlopen as uReq
from urllib.request import Request, urlopen
from bs4 import BeautifulSoup as soup
#For sites that can't be opened due to Urllib blocker, use a Mozilla User agent to get access
pageRequest = Request('https://coronavirusbellcurve.com/', headers = 'User-Agent': 'Mozilla/5.0')
htmlPage = urlopen(pageRequest).read()
page_soup = soup(htmlPage, 'html.parser')
specificDiv = page_soup.find("div", "class": "table-responsive-xl")
TbodyStats = specificDiv.table.tbody.tr.contents
TbodyDates = specificDiv.table.thead.tr.contents
def writeCSV():
with open('CovidHTML.csv','w', newline= '') as file:
theWriter = csv.writer(file)
theWriter.writerow(['5/8', ' 5/9', ' 5/10',' 5/11',' 5/12'])
row = []
for i in range(3,len(TbodyStats),2):
row.append([TbodyStats[i].text])
theWriter.writerow(row)
writeCSV()
答案
如果你想保留csv文件中的旧内容,那就用追加模式打开文件(正如@bfris所指出的正确做法)。
with open('CovidHTML.csv','a', newline= '') as file:
如果你使用的是Linux,你可以设置一个名为 cron
作业,每天在某个特定的时间调用python脚本。首先,使用 which
命令。
$ which python3
这给了我
/usr/bin/python3
然后,cron作业会是这样的:在crontab文件中添加这一行。
10 14 * * * /usr/bin/python3 /path/to/python/file.py
在crontab文件中添加这行. 这将在每天下午2:10分调用python脚本。你可以看一下 此处 以了解详情。
如果您使用的是Windows系统,您可以看一下 这个 疑问。
以上是关于我如何每天更新并保存数据到CSV文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 API 数据保存到 csv 文件中?另外如何修复回溯错误?
excel总表中有10000(一万)个数据需要拆分成200个一组的新excel文件并保存成csv格式,怎么做