【Python實戰篇】如何一次檢查大量網頁是否更新?

【Python實戰篇】如何一次檢查大量網頁是否更新?
Photo Credit:Reuters/達志影像

我們想讓你知道的是

以Python寫一個自動檢查多個網址是否更新的程式,可以追蹤相關網頁的最新動態。

筆者工作需要,不時要檢查一大堆網站是否有更新或變動,如港鐵(0066)是否有最新公布的新聞稿,立法會及金管局的研究部是否發布了最新研究,這些網站不少是沒有提供電郵提示,又或RSS的,因此今次以Python寫一個自動檢查多個網址是否更新的程式(見下表),可以追蹤相關網頁的最新動態。

mtr_zDsh7_1200x0

如何檢查一個網頁是否有改動呢?理論上當然可以把網頁的內容全部下載,然後與上一次下載的內容逐字逐句比較,但這頗為費時失事,較有效率的做法,是比較其雜湊值(hash value)。雜湊值的原理,是把一些資料輸入到密碼演算法,然後加密成一個固定長度的字串。以MD5的演算法來舉例,如果將"carrie lam"以md5加密,則會得出一個32個字符長的雜湊值"2383d47724fe0ec51c1384d404fc3487",若果將"carrie lam"改成"karrie lam",雜湊值便變成"4fc21c59f233f52de83c4e61d6b8ccc5",雖然只是差之毫釐,但其雜湊值已面目全非。

雜湊值的另一個特性,是無論輸入多大的數據量,其雜湊值都是一個固定長度的字符,就算你把整個harddisk的數據、或一齣電影的檔案數據輸入,其MD5雜湊值都是32個字符。雖然輸入的組合無限,而32個字符的組合看似有限,但都可以確保不同組合出現相同雜湊值的可能性極低,因此雜湊值已被廣泛應用於不同用途。加密貨幣如比特幣,便大量應用雜湊值來把交易數據加密,及加入區塊鏈。不過,由於MD5已被破解,故此比特幣使用的是更先進的SHA-256及橢圓曲線加密法( Elliptic Curve Digital Signature Algorithm)。

這次製作的這個程式,就是把網頁的整頁資料下載,並以MD5算法計算其雜湊值,然後與上一次的雜湊值比較,若兩者不同,即代表網頁已有資料改變,這時便會通知用戶。當然,這個簡單的程式有其限制,就是即使網頁有改變,也不一定是用戶想知的資料,用戶還是要親自檢視,同時,有些網頁可能動態改變內容,令本程式以為網頁每次都在更新。

本程式的用處,不是追蹤那些更新頻密的網頁,如新聞網站,而是一些只會間竭性更新的網頁,如企業網站或政府部門網頁,如果用戶需要追蹤數十至上百個這些網頁,則本程式是一個幫到手的選擇。

回到程式本身,其結構很簡單,用戶只需要在名為site的list中,輸入自己要追蹤的網頁,程式會建立一個json檔案,然後把網址及其雜湊值存入,在下次再執行程式時,便會比較網址最新的雜湊值與上次儲存的雜湊值是否一致,若否則指出網頁有更新或變動。用戶可以自由修改或增刪網頁名單,程式會自動更新json檔案,但若是新加入site名單中的網頁,由於之前未有計算雜湊值,故此首次檢查都表明是有更新。

checkupdate_ULg1J_1200x0

checksiteupdate.py

p3

本文獲授權轉載。

責任編輯:周雪君
核稿編輯:王陽翎




誰說永續距離遠!掌握永續力三秘訣,人人都能成為永續生活家

誰說永續距離遠!掌握永續力三秘訣,人人都能成為永續生活家
Photo Credit: Brooke Cagle

我們想讓你知道的是

「永續」一詞可說是近來最夯的名詞,想要落實永續並非難事,只要把握永續力三秘訣:參與永續素養大調查、認識經典案例及掌握永續新知做起,就能快速提升永續力!

一場突如其來的新冠疫情,讓充滿變動的大環境成為全人類的「新常態」,疫情讓世人看見,環境是人類最大的危機;隨著後疫時代來臨,站在關鍵重建點的我們,更要積極化危機為轉機,往前建設一個有韌性且永續的社會。因此當前除了要擴增永續的想像,不只是做環保,還要讓永續不該只是一種宣稱、一句口號,必須仰賴所有人在日常生活中的點滴實踐。

永續不是口號 涵養永續力三秘訣從生活領航

如今「永續」已成為全球企業顯學,然而真正的永續,卻不僅僅是政府、企業該付出努力,永續該被每個人落實在日常中,就像空氣、水一樣自然,就如同作家安娜.拉普(Anna Lappé)的名言:「你的每一次消費,都在為你想要的世界投票。」

只要人人皆具備永續力,就能在日常生活中自然輕鬆地落實永續。

什麼是「永續力」呢?簡單來說,它是人類必備的關鍵素養,能引領大眾察覺問題、發展解方,以形塑更好的社會樣貌,是非常重要的關鍵能力。至於要如何涵養出如此重要的永續力,其實並不難,從參與永續素養大調查、認識經典案例及掌握永續新知這些秘訣做起,就能快速建立起永續力!

培養永續力的第一步 從填寫「永續素養大調查」做起

有道是,「知己知彼,百戰百勝」,要涵養永續力,首先得從自己的永續力檢視起,花個十分鐘,參與「永續素養大調查」,了解自身對於永續議題的掌握度,就是重要的開始。

長期關注永續發展的星展銀行,攜手社企流及願景工程基金會,繼2021年發起全台第一個「永續素養大調查」,吸引萬人參與填答後,今年更加聚焦,以「永續力是你的超能力」為主軸,再度發起「永續素養大調查」,並結合專書、嘉年華等活動,以多元精彩內容邀請大眾一起涵養永續力。

有鑑於去年的調查結果,不少人將永續與環保劃上等號,為了擴大大眾對於永續的想像,並促進更多永續行動,這次的「永續素養大調查」,不僅聚焦包含ESG、淨零等關鍵名詞內涵,還包含像是全球 SDGs 指標完成概況、台灣國民法官上路、淨零轉型策略等國內外重要的永續發展政策及現況,填答也涵蓋教育、食農、氣候變遷、社會兼容等廣泛的永續議題,聚焦成為50 道題目,只要用喝一杯咖啡的時間,即可輕鬆完成填答,而填答完成後,還能免費兌換與抽獎獲得總價值超過 50 萬元的永續好禮!

向經典案例學習 展現為永續奮戰鬥士的星展隨行精神

再來,向經典的永續案例取經,是厚植實力的重要的作法。有鑑於此,星展銀行去年與社企流、願景工程基金會攜手推出永續生活家系列專訪,今年亦發起「風格生活,星展隨行」的品牌活動,邀請具社會影響力的風格生活家,與大家分享永續生活的實踐心法。

2
Photo Credit: 沒有垃圾的公寓生活、萬秀洗衣店

像是台灣與烏拉圭混血的知名Youtuber金魚腦,便以推廣「無塑」、「環保」議題大受矚目,平時也熱愛分享旅遊生活與跨國文化,今年更從環保的支持者,躍升為經營者,在台北開了一間「無包裝商店」實體店,店內選品也持續推廣永續理念。而零廢棄夫妻則是在面對身邊的舊物時,比起直接丟進垃圾桶,反而思考如何為它們創造新價值;萬秀洗衣店主理人張瑞夫,則是打造一個循環平台,幫助洗衣店業者可自主上架那些被遺忘、卻仍完好無缺、具清潔保障的衣物找到新歸屬,盼能開啟大眾對於舊衣的新想像。

這些案例,皆打破框架,擴大永續能在生活中實現的樣貌,而同為實踐永續的夥伴,星展銀行更以『與眾不同的銀行 (different kind of bank)』自我期許,要『更像為永續奮戰的鬥士( Eco-warrior )(為永續奮戰的鬥士)』,號召大眾一同響應,實踐永續!

不斷掌握新知 涵養充實永續力

3
Photo Credit: 社企

至於最後的秘訣在於不斷掌握永續新知,為了讓資訊更加普及,也更能被大眾接受,星展銀行同樣展現創意,與社企流、願景工程基金會舉辦「永續力是你的超能力」策展,除了專題內容將聚焦台灣現況,精選「教育、食農、環境、社會兼容、城鄉發展」五大議題,推出議題指南與人物對談,為大家錨定議題、掌握永續新知外,也透過永續行動嘉年華的舉辦,邀請於長期於永續領域耕耘者,透過創新展覽、選物市集、未來論壇等多元方式,開啟對話交流及互動的大門,還有藉由專書收錄國際與台灣趨勢,並集結國內外、各類型單位的永續案例,作為公民或組織於生活和工作層面實踐的指南,帶大家輕鬆掌握永續新知。時代變動迅速下,擁有永續力,就是驅動社會變得更好的超能力!永續行動嘉年華將於 10 月 15 、16 日在華山文創園區舉辦​​,以輕鬆、有趣方式,為公民打造全方位的永續力。活動免費參與、即日起開放報名:https://bit.ly/3DDivEM