From c3430176626d1b1d0a0d690579bf339d6fafad66 Mon Sep 17 00:00:00 2001 From: hnu202401010313 <2417003819@qq.com> Date: Tue, 24 Dec 2024 22:24:19 +0800 Subject: [PATCH] ADD file via upload --- downloader.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 downloader.py diff --git a/downloader.py b/downloader.py new file mode 100644 index 0000000..bfbe78f --- /dev/null +++ b/downloader.py @@ -0,0 +1,40 @@ +import requests +import csv +from lxml import etree +from config import FILE_NAME, QUERY_URL, HEADERS + +def fetch_raw_data(): + response = requests.get(QUERY_URL, headers=HEADERS) + return response.text + + +def parse_data(data): + etree.HTMLParser(encoding = "utf-8") + doc = etree.HTML(data) + + # 国家 + country = doc.xpath('//div[@class="table_container"]//tbody/tr/td/span/text()') + # 确诊人数 + person = doc.xpath('//div[@class="table_container"]//tbody/tr/td[2]/text()') + person = [x.replace(",", "") for x in person] + # 死亡人数 + death = doc.xpath('//div[@class="table_container"]//tbody/tr/td[3]/text()') + death = [x.replace(",", "") for x in death] + + message = list(zip(country, person, death)) + + return message + + +def save_message(message, file_name): + with open(file_name, "w", encoding = "utf-8") as file: + w = csv.writer(file) + w.writerows(message) + + +def fetch_and_save(): + raw_data = fetch_raw_data() + + message = parse_data(raw_data) + + save_message(message, FILE_NAME)