Python-Echtzeit-Datenerfassung – neuartiges Coronavirus
Python-Echtzeit-Datenerfassung – Neuartiges Coronavirus
Quellcode Quelle: https://github.com/Programming-With-Love/2019-nCoV
Der Zeitpunkt der Epidemiedaten ist: 2020.2.1
Projektbezogene Screenshots:
Nationale Datenanzeige
Inländische Daten Anzeige
Ausländische Datenanzeige
Detaillierte Daten anzeigen von der angegebene Bereich
Quellcode, achten Sie darauf, die erforderlichen Module zu installieren (z. B. den Namen des Pip-Installationsmoduls)
import requests import re from bs4 import BeautifulSoup from time import sleep import json from prettytable import ALL from prettytable import PrettyTable hubei = {} guangdong = {} zhejiang = {} beijing = {} shanghai = {} hunan = {} anhui = {} chongqing = {} sichuan = {} shandong = {} guangxi = {} fujian = {} jiangsu = {} henan = {} hainan = {} tianjin = {} jiangxi = {} shanxi1 = {} # 陕西 guizhou = {} liaoning = {} xianggang = {} heilongjiang = {} aomen = {} xinjiang = {} gansu = {} yunnan = {} taiwan = {} shanxi2 = {} # 山西 jilin = {} hebei = {} ningxia = {} neimenggu = {} qinghai = {} # none xizang = {} # none provinces_idx = [hubei, guangdong, zhejiang, chongqing, hunan, anhui, beijing, shanghai, henan, guangxi, shandong, jiangxi, jiangsu, sichuan, liaoning, fujian, heilongjiang, hainan, tianjin, hebei, shanxi2, yunnan, xianggang, shanxi1, guizhou, jilin, gansu, taiwan, xinjiang, ningxia, aomen, neimenggu, qinghai, xizang] map = { '湖北':0, '广东':1, '浙江':2, '北京':3, '上海':4, '湖南':5, '安徽':6, '重庆':7, '四川':8, '山东':9, '广西':10, '福建':11, '江苏':12, '河南':13, '海南':14, '天津':15, '江西':16, '陕西':17, '贵州':18, '辽宁':19, '香港':20, '黑龙江':21, '澳门':22, '新疆':23, '甘肃':24, '云南':25, '台湾':26, '山西':27, '吉林':28, '河北':29, '宁夏':30, '内蒙古':31, '青海':32, '西藏':33 } def getTime(text): TitleTime = str(text) TitleTime = re.findall('<span>(.*?)</span>', TitleTime) return TitleTime[0] def getAllCountry(text): AllCountry = str(text) AllCountry = AllCountry.replace("[<p class=\"confirmedNumber___3WrF5\"><span class=\"content___2hIPS\">", "") AllCountry = AllCountry.replace("<span style=\"color: #4169e2\">", "") AllCountry = re.sub("</span>", "", AllCountry) AllCountry = AllCountry.replace("</p>]", "") AllCountry = AllCountry.replace("<span style=\"color: rgb(65, 105, 226);\">", "") AllCountry = re.sub("<span>", "", AllCountry) AllCountry = re.sub("<p>", "", AllCountry) AllCountry = re.sub("</p>", "", AllCountry) return AllCountry def query(province): table = PrettyTable(['地区', '确诊', '死亡', '治愈']) for (k, v) in province.items(): name = k table.add_row([name, v[0] if v[0] != 0 else '-', v[1] if v[1] != 0 else '-', v[2] if v[2] != 0 else '-']) if len(province.keys()) != 0: print(table) else: print("暂无") def getInfo(text): text = str(text) text = re.sub("<p class=\"descText___Ui3tV\">", "", text) text = re.sub("</p>", "", text) return text def is_json(json_str): try: json.loads(json_str) except ValueError: return False return True def ff(str, num): return str[:num] + str[num+1:] def main(): url = "https://3g.dxy.cn/newh5/view/pneumonia" try: headers = {} headers['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36' #http头大小写不敏感 headers['accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' headers['Connection'] = 'keep-alive' headers['Upgrade-Insecure-Requests'] = '1' r = requests.get(url, headers=headers) r.raise_for_status() r.encoding = r.apparent_encoding soup = BeautifulSoup(r.text,'lxml') table = PrettyTable(['地区', '确诊', '死亡', '治愈']) table.hrules = ALL #### 截至时间 # TitleTime = getTime(soup.select('.title___2d1_B')) print() # print(" ",TitleTime + "\n") while True: r = requests.get("https://service-f9fjwngp-1252021671.bj.apigw.tencentcs.com/release/pneumonia") json_str = json.loads(r.text) if json_str['error'] == 0: break print("==================================全国数据==================================") print() print(" 确诊 " + str(json_str['data']['statistics']['confirmedCount']) + " 例" + " " + "疑似 " + str(json_str['data']['statistics']['suspectedCount']) + " 例" + " " + "死亡" + str(json_str['data']['statistics']['deadCount']) + " 例" + " " + "治愈" + str(json_str['data']['statistics']['curedCount']) + " 例\n") print("==================================相关情况==================================") print() print("传染源:" + json_str['data']['statistics']['infectSource']) print("病毒:" + json_str['data']['statistics']['virus']) print("传播途径:" + json_str['data']['statistics']['passWay']) print(json_str['data']['statistics']['remark1']) print(json_str['data']['statistics']['remark2'] + "\n") print("==================================国内情况==================================") print() json_provinces = re.findall("{\"provinceName\":(.*?)]}", str(soup)) idx = 0 for province in json_provinces: if is_json(province): pass else: province = "{\"provinceName\":" + province + "]}" province = json.loads(province) province_name = province['provinceShortName'] if province['provinceShortName'] != 0 else '-' confirmed = province['confirmedCount'] if province['confirmedCount'] != 0 else '-' suspected = province['suspectedCount'] if province['suspectedCount'] != 0 else '-' cured = province['curedCount'] if province['curedCount'] != 0 else '-' dead = province['deadCount'] if province['deadCount'] != 0 else '-' table.add_row([province_name, confirmed, dead, cured]) map[province_name] = idx idx = idx + 1 for city in province['cities']: provinces_idx[map[province_name]][city['cityName']] = [city['confirmedCount'], city['deadCount'], city['curedCount']] print(table) print() print("==================================国外情况==================================") print() json_provinces = str(re.findall("\"id\":949(.*?)]}", str(soup))) json_provinces = json_provinces[:1] + "{\"id\":949" + json_provinces[2:] json_provinces = json_provinces[:len(json_provinces) - 2] + json_provinces[len(json_provinces) - 1:] provinces = json.loads(json_provinces) table = PrettyTable(['地区', '确诊', '死亡', '治愈']) for province in provinces: confirmed = province['confirmedCount'] if province['confirmedCount'] != 0 else '-' dead = province['deadCount'] if province['deadCount'] != 0 else '-' cured = province['curedCount'] if province['curedCount'] != 0 else '-' table.add_row([province['provinceName'], confirmed, dead, cured]) print(table) print() print("==================================最新消息==================================") print() idx = 0 for news in json_str['data']['timeline']: if idx == 5: break print(news['pubDateStr'] + " " + news['title']) idx = idx + 1 print() key = input("请输入您想查询详细信息的省份,例如 湖北\n") print() if key in map.keys(): query(provinces_idx[map[key]]) else: print("暂无相关信息") print("\n欢迎提出各种意见") except: print("连接失败") if __name__ == '__main__': main() sleep(30)
Abschließend wünsche ich mir, dass jeder gegen alle Arten von Giften immun ist. ! Wir werden das auf jeden Fall durchstehen! !
Das obige ist der detaillierte Inhalt vonPython-Echtzeit-Datenerfassung – neuartiges Coronavirus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Geschwindigkeit der mobilen XML zu PDF hängt von den folgenden Faktoren ab: der Komplexität der XML -Struktur. Konvertierungsmethode für mobile Hardware-Konfiguration (Bibliothek, Algorithmus) -Codierungsoptimierungsmethoden (effiziente Bibliotheken, Optimierung von Algorithmen, Cache-Daten und Nutzung von Multi-Threading). Insgesamt gibt es keine absolute Antwort und es muss gemäß der spezifischen Situation optimiert werden.

Mit einer einzigen Anwendung ist es unmöglich, XML -zu -PDF -Konvertierung direkt auf Ihrem Telefon zu vervollständigen. Es ist erforderlich, Cloud -Dienste zu verwenden, die in zwei Schritten erreicht werden können: 1. XML in PDF in der Cloud, 2. Zugriff auf die konvertierte PDF -Datei auf dem Mobiltelefon konvertieren oder herunterladen.

Es gibt keine integrierte Summenfunktion in der C-Sprache, daher muss sie selbst geschrieben werden. Die Summe kann erreicht werden, indem das Array durchquert und Elemente akkumulieren: Schleifenversion: Die Summe wird für die Schleifen- und Arraylänge berechnet. Zeigerversion: Verwenden Sie Zeiger, um auf Array-Elemente zu verweisen, und eine effiziente Summierung wird durch Selbststillstandszeiger erzielt. Dynamisch Array -Array -Version zuweisen: Zuordnen Sie Arrays dynamisch und verwalten Sie selbst den Speicher selbst, um sicherzustellen, dass der zugewiesene Speicher befreit wird, um Speicherlecks zu verhindern.

Es gibt keine App, die alle XML -Dateien in PDFs umwandeln kann, da die XML -Struktur flexibel und vielfältig ist. Der Kern von XML zu PDF besteht darin, die Datenstruktur in ein Seitenlayout umzuwandeln, für das XML analysiert und PDF generiert werden muss. Zu den allgemeinen Methoden gehören das Parsen von XML mithilfe von Python -Bibliotheken wie ElementTree und das Generieren von PDFs unter Verwendung der ReportLab -Bibliothek. Für komplexe XML kann es erforderlich sein, XSLT -Transformationsstrukturen zu verwenden. Wenn Sie die Leistung optimieren, sollten Sie Multithread- oder Multiprozesse verwenden und die entsprechende Bibliothek auswählen.

XML -Formatierungs -Tools können Code nach Regeln eingeben, um die Lesbarkeit und das Verständnis zu verbessern. Achten Sie bei der Auswahl eines Tools auf die Anpassungsfunktionen, den Umgang mit besonderen Umständen, die Leistung und die Benutzerfreundlichkeit. Zu den häufig verwendeten Werkzeugtypen gehören Online-Tools, IDE-Plug-Ins und Befehlszeilen-Tools.

Es ist nicht einfach, XML direkt auf Ihr Telefon in PDF umzuwandeln, kann jedoch mit Hilfe von Cloud -Diensten erreicht werden. Es wird empfohlen, eine leichte mobile App zu verwenden, um XML -Dateien hochzuladen und generierte PDFs zu empfangen und sie mit Cloud -APIs zu konvertieren. Cloud -APIs verwenden serverlose Computerdienste, und die Auswahl der richtigen Plattform ist entscheidend. Bei der Behandlung von XML -Parsen und PDF -Generation müssen Komplexität, Fehlerbehebung, Sicherheit und Optimierungsstrategien berücksichtigt werden. Der gesamte Prozess erfordert, dass die Front-End-App und die Back-End-API zusammenarbeiten, und es erfordert ein gewisses Verständnis einer Vielzahl von Technologien.

XML kann mithilfe eines XSLT -Konverters oder einer Bildbibliothek in Bilder konvertiert werden. XSLT -Konverter: Verwenden Sie einen XSLT -Prozessor und Stylesheet, um XML in Bilder zu konvertieren. Bildbibliothek: Verwenden Sie Bibliotheken wie Pil oder Imagemagick, um Bilder aus XML -Daten zu erstellen, z. B. Zeichnen von Formen und Text.

Verwenden Sie die meisten Texteditoren, um XML -Dateien zu öffnen. Wenn Sie eine intuitivere Baumanzeige benötigen, können Sie einen XML -Editor verwenden, z. B. Sauerstoff XML -Editor oder XMLSPY. Wenn Sie XML -Daten in einem Programm verarbeiten, müssen Sie eine Programmiersprache (wie Python) und XML -Bibliotheken (z. B. XML.etree.elementtree) verwenden, um zu analysieren.
