成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能開發者 正文
    發私信給楊鯉萍
    發送

    0

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    本文作者: 楊鯉萍 2020-03-26 17:38
    導語:無廣告的自制訂閱神器。

    雷鋒網 AI 源創評論:目前,隨著新型冠狀病毒(COVID-19)在全球范圍內蔓延,海外地區現有確診已經上升至 293683(數據更新至 2020.03.25 16:54)。為了更好保證自身健康,我們必須了解正在影響?活所在地區的實際統計數據。

    如何利用現有工具來實時追蹤病情分布?近日,一個有趣的開源項目正好解決了這一問題。只需一臺電腦,誰都可按照步驟利用 Python 獲得專屬個人的疫情信息。作者發布了文章介紹該操作過程,雷鋒網 AI 源創評論將其編譯如下。

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    圖片來源:Sebastian Herrmann on Unsplash

    Web 爬蟲計劃

    我們將使? Web 爬蟲的?法,以及 Selenium(Web 爬蟲的一個庫)和 Python?具來完成這一計劃。
    首先,我們需要找到從中獲取數據的網站,在本次教程中,使?到的是 Worldometers(https://www.worldometers.info/ ),因為作者覺得這上面的數據?常準確,并且?站看起來不錯。

    下面開始進入計劃:

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    在 Worldometers 上的表格中,顯示了每個受影響國家/地區的相關數據,包括:累計確診病例、新增病例、累計死亡人數、累計治愈人數,以及病危程度的人數統計等。

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    我們要做的,就是將以上的各個詳細數據,通過一系列方法的轉化,使其能夠自動發到我們的電子郵箱中。當然,選擇其它包含這些數據的網站,也不是不可以。

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    搭建環境

    首先,我們需要安裝 ChromeDriver,并進行環境搭建。

    ChromeDriver 將幫助我們能夠控制瀏覽器并向其發送命令,從而進?測試和之后的其它操作,可以通過鏈接( https://chromedriver.chromium.org/ )下載與你電腦系統相匹配的安裝包。

    Ps:如果你不是很熟悉 ChromeDriver,建議盡可能使用最新穩定版本。

    下載之后,接下來將需要解壓所下載的文件,建議右鍵單擊「文件」,然后選擇「Extract Here」,手動進行解壓操作。

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    之后你會發現在該?件夾內,有?個名為「chromedriver」的?件,我們需要按照下面的步驟將其移?計算機上的特定?件夾。

    • 第一步,打開終端并輸?以下命令:

    sudo su#進?root 模式 cd 

    #從當前位置返回到基礎 mv / home / *your_pc_name * / Downloads / chromedriver / usr / local / bin 

    #將?件移動到正確的位置

    注意:其中的「*your_pc_name *」部分,需要替換為所用計算機的實際名稱。

    • 第二步,打開編輯器,作者選擇的是 Visual Studio Code(https://code.visualstudio.com/ )。

    • 第三步,新建一個項?,并創建兩個新?件。可參考下面作者的設置:

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    Visual Studio Code—項目設置

    并且可以發現,在 VS Code 中有?個「Terminal」選項,可以?它在 VS Code 中打開內部終端。

    第四步,安裝虛擬環境和?于 Web 爬蟲驅動程序的 selenium 工具,并在終端中鍵?下面這些命令:

    pip3 install virtualenv

    source venv / bin / activate 

    pip3 install selenium

    最后激活虛擬環境,我們的準備工作就完成了。

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    開始編碼

    現在,我們完成對環境的搭建以及掌握所需信息獲取地址后,就要開始做「編碼實現」部分了。

    我們將為其創建為?個類以及函數,使?任何名稱創建即可,然后啟動 Chrome 驅動程序:

    class Coronaviru(): 

               def __init __(self): 

                    self.driver = webdriver.Chrome()

    然后,轉到 VS Code 內部終端并輸?下面的代碼,此命令使我們可以將?件作為交互式場所:

    python -i coronavirus.py

    之后,將瀏覽器的新標簽頁打開,我們開始向其發出命令。(如果想進?實驗,可以使?命令?代替在源?件中鍵?命令?)

    對于終端,命令為:

    bot = Coronavirus() 

    bot.driver.get('https://www.worldometers.info/coronavirus/')

     現在,使其獲取源代碼:

    self.driver.get('https://www.worldometers.info/coronavirus/') 

    當我們進??站時,我們需要提取所選網頁中的表格。因此,我們將以這種?式進?操作,將表格作為 Web 元素并將其保存在「表」下。

    為了在?頁上找到該元素,我們使? find_element_by_xpath()并使?其定義的 ID 對其進?過濾。

    table = self.driver.find_element_by_xpath('//* 

    [@id="main_table_countries"]/tbody[1]')

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    在該表中,通過對應的名稱,確保要找到我們最初需要獲取國家或地區。

    country_element = table.find_element_by_xpath(「// td 

    [contains(text(),'China')]」))

    再次使?XPath,我們嘗試使用「China」的數據。由于我們需要「China」旁邊的數據,因此我們必須確保它屬于該?,這就是為什么要從 country_element 中獲取父節點:

    row = country_element.find_element_by_xpath("./..")

    在該?內,我們獲取了所需的所有數據,我們將該字符串拆分為每?列,并將其保存為變量:

    data = row.text.split(" ") 

    total_cases = data[1] 

    new_cases = data[2] 

    total_deaths = data[3] 

    new_deaths = data[4]

    active_cases = data[5] 

    total_recovered = data[6] 

    serious_critical = data[7]

    其中,「data」是?個來?字符串拆分的列表,然后我們將其分散到不同的變量中以備后?。

    發送電?郵件

    在完成編碼部分之后,我們就要進入電子郵件發送部分了。

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    首先,需要設置電?郵件發送服務器。作者用到了 Google 帳戶服務,然后進?「應?程序密碼」,在那??成?個新密碼并在所寫腳本程序中使?它。

    然后,我們將通過以下代碼,為我們將收到的電?郵件制作模板:

    def send_mail(country_element, total_cases, new_cases, total_deaths, new_deaths, active_cases, total_recovered, serious_critical):

    server = smtplib.SMTP('smtp.gmail.com', 587)

    server.ehlo()

    server.starttls()

    server.ehlo()

    server.login('email', 'password')

    subject = 'Coronavirus stats in your country today!'

    body = 'Today in ' + country_element + '\

    \nTotal cases: ' + total_cases +'\

    \nNew cases: ' + new_cases + '\

    \nTotal deaths: ' + total_deaths + '\

    \nNew deaths: ' + new_deaths + '\

    \nActive cases: ' + active_cases + '\

    \nTotal recovered: ' + total_recovered + '\

    \nSerious, critical cases: ' + serious_critical + '\

    \nCheck the link: https://www.worldometers.info/coronavirus/' 

    msg = f"Subject: {subject}\n\n{body}"

    server.sendmail(

    'Coronavirus',

    'email',

    msg

    )

    print('Hey Email has been sent!')

    server.quit()

    這樣,就能夠實現單次的最新疫情信息獲取了。如果你希望每天重復執?此腳本,可以通過下面鏈接中的編碼實現:

    https://stackoverflow.com/questions/15088037/python-script-to-do-something-at-the-same-time-every-day 

    成功訂閱!

    最后,我們就得到了自制的郵件訂閱啦(如下所示)。

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    電子郵件形式成功

    當然,除了可以將我們所在地區的新冠病毒最新情況發到個人郵箱外,通過這樣的方法,舉一反三,你想訂閱的其它資訊也可以自定義發送,而且還沒有任何廣告。

    而在此,也再次提醒所有朋友,在目前疫情持續情況下,一定要勤洗手、戴口罩;同時,盡可能避免與他?進?過多的?體接觸。

    原文地址:

    https://towardsdatascience.com/how-to-track-coronavirus-with-python-a5320b778c8e 

    完整開源代碼 Github 地址:

    https://github.com/lazargugleta/coronavirusStats/blob/master/coronavirus.py 

    雷鋒網 AI 源創評論

    雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知

    只需一臺電腦,用 Python 實時追蹤新冠病毒分布

    分享:
    相關文章
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說