奧運即時比分 LINE 通知 (Python + LINE Notify)

當家裡沒電視、沒辦法看奧運轉播,卻很想知道中華隊現在比數如何的時候,發現 Google 有即時更新的比分,於是打開 F12 看了一下 XHR,有一個開頭是 torspo 的網址一直在送資料,如下圖。

URL = ‘https://www.google.com/async/torspo?ei=wuEEYZkqiLWYBeK8pYAG&yv=3&p3=1&async=emids:%2Fg%2F11fr0b7qvf,id:lu,ctx:%5Bnull%2Cnull%2C%5B%5B%22ev2%22%2C%22clb%22%2C%22tlb%22%2C%22tv%22%2C%22gs2%22%2C%22msv%22%5D%5D%2Cnull%2C1%2Cnull%2C1%2C%5Bnull%2C%5Bnull%2Cnull%2Cnull%2C%22%2Fm%2F05gj2h%22%5D%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2C%5B%22%2Fm%2F0194d%22%5D%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2C%5Bnull%2Cnull%2C%22%2Fm%2F06vvk%22%5D%5D%2C28%2C1%5D,dme:%2Fg%2F11fr0b7qvf,ct:,hl:zh-TW,tz:Asia%2FTaipei,_fmt:jspb’

但這網址除了參數有夠長之外,回應也非常混亂,有很多層的資料,光是解析出來就花了我好多時間,總之比賽國家和比分資訊就是藏在 ["tsp-mr4","tsp-vm"] 這個的後面,就用 regex 加上一些簡單的資料清理把它們抓出來:

閱讀更多»

在 AWS Lambda 上使用 Python 第三方套件教學

本文紀錄如何在 AWS Lambda 上安裝並使用 Python 第三方套件,步驟包含在本機先建立套件的 zip 檔,以及新增 Layer 到 Lambda 函式上

Lambda 函式預設無法使用 Python 第三方套件

我在 AWS Lambda 撰寫好函式(或是使用 $ zip <dest_filename>.zip <py_file>.py 製作 python zip 檔後上傳函式),函式中有使用到 requests 這個套件,執行 Test 時會顯示 No module named 'requests',原因就是 AWS Lambda 預設是沒有 requests 這個套件的,需要另外上傳套件檔,以下是解決方法。

  1. 安裝所需套件至 python 資料夾
  2. 打包 python 套件資料夾為 zip 檔
  3. 建立新 Layer
  4. 將 Layer 新增至函式

前兩步驟是在本機完成,後兩步驟是在 AWS 上進行,接下來將詳細解說各步驟。

1. 安裝所需套件至 python 資料夾

AWS 官方文件說額外的套件必須使用 「python」 這個名稱的資料夾打包,所以要在專案資料夾內建立一個 python 資料夾,並將套件安裝到裡面,詳細 Terminal 指令如下:

$ mkdir python
$ cd python

# 安裝單一套件
$ pip install --target . requests

# 一次安裝多個套件
$ pip install --target . -r requirements.txt
閱讀更多»

美國利用大數據守護台灣?Palantir 是如何透過大數據進行軍情決策

大數據分析聞名的 Palantir 公司

Palantir 總部位於丹佛,2003 年由 PayPal 的其中一位共同創辦人所創立,成立 12 年時估值就已達 200 億美金,在 2018 年更已高達 410 億美金!

Palantir Gotham 是該公司的其中一項產品,主要用於國防軍事、反恐情報等,據説 2011 年美軍能夠鎖定賓拉登確切位置,也是依靠這項產品提供恐怖份子的行為模式分析數據。(現在的小朋友是不是已經不知道賓拉登是誰了 XD)

這次主要想來聊聊 Palantir 在上個月上傳的 YouTube 影片,主要在展示如何使用大數據來監控中國在南海的軍事行為,並採取適當策略,以捍衛台灣南海的和平!

為什麼要監控中國對台灣的威脅?

影片中提到,由於全世界 80% 的半導體,都是依靠台灣來生產供應,因此若有任何狀況導致產線中斷,將會對全世界造成災難性的衝擊,台灣的半導體產業在世界上真的是舉足輕重的地位啊~

影片的主線劇情是:中國一艘旅洋驅逐艦(Luyang Destroyer)從碼頭消失,為了找到它,展開了以下驚心動魄的數據軍情決策!

閱讀更多»

網頁輕量級 Jupyter!JupyterLite 介紹與使用心得

JupyterLite 是什麼?

JupyterLite 是可以直接使用瀏覽器開啟的輕量級 JupyterLab,主要是依靠一個稱為 Pyolite 的核心 (建立在 Pyodide 之上的 CPython 3.8 直譯器),目前也有支援類似 Jupyter notebook 的 RetroLab 版本。

Pyodide — Version 0.17.0

主要是由 Jupyter 的核心開發者所開發出來的,因此目前還算是非官方專案,他們之後預計會慢慢將各種平常會使用到的功能實現在 JupyterLite 上。

JupyterLite 的使用範例

點選連結進去後,會看到左側已經有一系列的示範代碼可以使用,例如開啟 pyolite - plotly.ipynb 檔案,即可測試在 JupyterLite 上 Plotly 的資料視覺化功能。

範例 1:[Plotly] 散佈圖、長條圖

[Plotly] scatter、bar chart (散佈圖、長條圖)
閱讀更多»

快速了解 VS Code 最新更新!聊聊 v1.58 的新功能

這次 VS Code 更新到 v1.58 版本啦!利用這篇文章來分享幾個本人覺得還滿值得一提的新功能吧!

比較有感的更新

繁體中文介面!

雖然英文介面已經用很習慣,但繁體中文用起來也還滿新鮮的!

繁中介面的歡迎頁

Terminals in the editor

現在可以將 terminal 建立或是移動到程式碼編輯的那個區塊,這個彈性還滿方便的,之後就不用被限制 terminal 只能放在下方了!

移動和新增的方式有四種,個人覺得第 2 點的直接拖曳 tab 感覺最方便

閱讀更多»