2-9:Line Bot與Python
網頁爬蟲,Web Crawler,是依據目標網頁的URL,來搜尋所需要的資料,並把所得內容存檔,或者繪製成圖表。
URL,Uniform Resource Locator,直接翻譯起來有點彆扭,如果把Uniform改成Universal就好多了,就叫做”全球資源定位器”。其實一開始http創建者Berners-Lee,就是使用Universal這個名稱來送審IETF的。
網際網路上的每個網站,都各有網域名稱連結其IP位址,而每個網站的內頁,如「關於我們」、「最新消息」、「產品介紹」等,它們的URL都略有不同,其網域名稱是共通的,但抵達個別網頁的路徑卻有所差異。
我們在目標網頁上按下電腦鍵盤F12鍵,可以看到該網頁背後的語法,是以HTML、CSS、Javascript為主,我們就是從這些語法來做網頁爬蟲。
圖2-8-1. 網頁瀏覽器所看到的內容(圖左),其背後都是一些語法(圖右)。
在Python裡面,有一個BeautifulSoup的模組,可以將網頁上取得的資料,從原有的字串型態,剖析(parse)成有階層關係的樹狀結構,讓爬蟲者可依據標籤或樣式,順著節點來抓取資料。
下圖是聯電、台積電、聯發科三家公司股價,從台灣證券交易所網站,爬取出來的近10年資料分析圖。聯發科這家公司,雖然是從聯電spin off出來的,但青出於藍。它擺脫了一代拳王、一曲歌后的IC設計公司宿命,宛如九命怪貓一般,一次又一次從下滑的危機中再創高峰。
但股價一直屈居下風的台積電,最近一、兩個月來,已開始出現黃金交叉的現象了,這並非是聯發科成長不如預期,而是台積電發展趨勢更被看好。所以討論「AI是否泡沫化」,在這個時間點是沒有必要的,因為這波熱潮,還會再持續好幾年。
圖2-8-2. 2016年~2025年股價走勢圖,橘色的台積電最近已超越綠色的聯發科。
我們還記得,Python裡面有一個輕薄短小,功能又不錯的flask網頁伺服器模組,可以協助將網頁爬蟲的資料公佈在網頁上,讓他人也可下載存成CSV檔案。甚至未來還可再修改介面,分享所開發的網頁爬蟲程式,讓連線者自行設定參數來搜尋資料。
圖2-8-3. 利用flask模組,將爬蟲所得資料公佈在網頁上,供人下載存成CSV檔案。
