跳到主要內容

發表文章

Python網路爬蟲應用實例:臺北市不動產實價周報開放資料爬取指南

在眾多的資料分析專案中,不動產實價也是很常被拿來分析的主題,那想要利用Python網頁爬蟲蒐不動產的資料,除了可以爬取網站上的資料之外,地方政府也有透過OpenAPI來提供各種不同的開放資料(OpenData),讓大家進行多元的分析或應用。這篇文章就來和大家分享,如何利用Python網頁爬蟲爬取 臺北市資料大平臺上的不動產實價開放資料 。 開放資料(OpenData)存取方法 Python網頁爬蟲存取 開放資料(OpenData) Python網頁爬蟲爬取開放資料(OpenData) 一、開放資料(OpenData)存取方法 前往 臺北市資料大平台 ,如下圖: 在搜尋的地方輸入「臺北市實價周報」,就可以找到臺北市不動產實價周報的開放資料(OpenData),如下圖: 點擊之後,可以看到它的資料描述、欄位說明等,那存取方式就在最下面的地方,分別提供下載CSV檔案資料、API、預覽資料集,而想要利用Python網頁爬蟲爬取不動產的實價資料,就要選擇API的方式,如下圖: 在API的文件中,Python網頁爬蟲會需要利用API位址、API使用方式與參數來發送請求,進而爬取回應的不動產實價資料。另外,「API參數及測試」則是依需求選擇性加入的參數,如下圖: 二、Python網頁爬蟲存取 開放資料(OpenData) 瞭解臺北市不動產實價周報的開放資料API使用方式之後,就可以開啟Python網頁爬蟲專案,引用requests模組,如下範例: import requests 接下來,Python網頁爬蟲發送請求到 臺北市不動產實價周報的開放資料API,並且傳入必要的參數,如下範例: import requests # 參數 params = { "resource_id": "2979c431-7a32-4067-9af2-e716cd825c4b" } # 發送請求 response = requests.get( 'https://data.taipei/api/v1/dataset/2979c431-7a32-4067-9af2-e716cd825c4b?scope=resourceAquire', params=params ) 假設我們只想要利用Python網頁爬蟲爬取10筆的臺北

Python網路爬蟲應用實例:雄獅旅遊行程資料爬取指南

  每到放假出遊的時候,規劃行程就是最花時間的工作,要到許多網站蒐集各種旅遊景點,而這也是Python網頁爬蟲很常應用的情境,透過自動化的方式有效蒐集熱門的旅遊景點資料,提升規劃行程的效率。這篇文章就用 雄獅旅遊網站 來當作網路爬蟲應用實例,教大家使用Python網頁爬蟲蒐集旅遊資料。 網站分析及爬取策略 Python網頁爬蟲爬取JavaScript網站資料 Python網頁爬蟲爬取多分頁資料 一、網站分析及爬取策略 首先,前往 雄獅旅遊網站 ,如下圖: 截取自 雄獅旅遊 假設我們想要利用Python網頁爬蟲蒐集韓國旅行團的資料,在上面「國外團體」的地方選擇「韓國」,如下圖: 截取自 雄獅旅遊 並且在下面 「季節限定」的區塊選擇 「更多行程」,如下圖: 截取自 雄獅旅遊 就可以看到非常多季節限定的旅行團資料,如下圖: 截取自 雄獅旅遊 這時候點擊滑鼠右鍵,選擇 「檢查」,切換到 「Network(網路)」頁籤,來檢視網頁背後發送請求的況況。 接下來,按下「Ctrl + R」重新整理網頁,並且搜尋網頁上的資料,會發現網站有使用JavaScript發送請求來取得資料,如下圖: 由此可知,這個網頁就是JavaScript型網頁, 那要利用Python網頁爬蟲爬取JavaScript型網頁的資料,我們就需要知道它的請求網址(Url)、請求方法(Request Method)及請求參數(Payload),可以切換到Headers(標頭)、Payload(參數)頁籤檢視,如下圖: 如果想要瞭解更詳細的Python網頁爬蟲爬取策略,可以參加 我的免費線上培訓 ,教你各種網頁的爬取方法,讓你能夠輕鬆判斷網頁類型,爬取到想要的資料。 二、Python網頁爬蟲爬取JavaScript網站資料 Python網頁爬蟲爬取JavaScript網站回應的資料,需要引用requests模組,如下範例: import requests 接著,利用requests模組發送POST請求到JavaScript的請求網址,如下範例: import requests response = requests.post('https://travel.liontravel.com/search/grouplistinfojson') 由於剛剛有看到網頁發送請求的時候有傳入參數(Payload

Python網路爬蟲應用實例:MOMO購物網電商資料爬取指南

在電商領域中,不論是賣家或買家,很多時候都會需要蒐集各個電商網站的商品、價格與評論等資料,來分析各種商品的價格、用戶滿意度,這時候就可以使用Python網頁爬蟲來自動化蒐集電商網站的資料,進而提升資料分析的效率。今天這篇文章就以 MOMO購物網 作為網路爬蟲應用實例,學會 如何利用Python網頁爬蟲蒐集電商網站的資料。

Python網路爬蟲應用實例:Yahoo財經新聞資料爬取指南

Python網頁爬蟲可以說是現在大數據時代很重要的資料蒐集技術,在財經領域,很常會需要蒐集財經新聞或相關的股市資料,來作為後續的投資分析或參考,這時候就可以利用Python網頁爬蟲爬取網站上的財經資料,提升蒐集資料的效率。這篇文章就以 Yahoo股市的財經新聞網站 作為網路爬蟲應用實例,教大家如何使用Python網頁爬蟲來自動化爬取財經新聞資料。 網站分析及爬取策略 Selenium發送請求 Selenium自動化滾動網頁卷軸載入資料 Selenium爬取網頁資料 一、網站分析及爬取策略 首先前往 Yahoo股市 的財經新聞網站 ,假設我們想要爬取其中的財經新聞區塊資料,如下圖: 在操作的時候可以發現需要滾動網頁捲軸,才會動態載入更多的財經新聞資料,所以我們就會需要選擇使用Python的Selenium套件來建置動態網頁爬蟲,透過它提供的網頁操作方法(Method),在操作網頁的同時動態爬取財經資料。 如果想要瞭解更詳細的Python網頁爬蟲爬取策略,可以參加 我的免費線上培訓 ,教你各種網頁的爬取方法,讓你能夠輕鬆判斷網頁類型,爬取到想要的資料。 二、Selenium發送請求 接下來,打開Python網頁爬蟲專案,引用Selenium必要的模組,如下範例: from selenium import webdriver #瀏覽器驅動模組 from webdriver_manager.chrome import ChromeDriverManager #Chrome瀏覽器驅動模組 from selenium.webdriver.common.by import By #網頁元素定位模組 import time #時間模組 更多Selenium專案的初始化與模組引用時機介紹,可以參考我的 全面掌握Selenium建置動態網頁爬蟲的步驟與重要模組 文章。 引用Selenium套件的模組之後,就可以建立瀏覽器驅動物件,發送請求到 Yahoo股市 的財經新聞網站 ,如下範例: from selenium import webdriver #瀏覽器驅動模組 from webdriver_manager.chrome import ChromeDriverManager #Chrome瀏覽器驅動模組 from selenium.webdriver.common.by

立即用Looker Studio自動生成報表:讓數據工作變得更簡單

如果想要在雲端上實作資料分析專案,那就不能不知道Looker Studio(原名Google Data Studio)雲端資料視覺化工具,能夠免費在Google雲端平台上透過連結各種資料來源,建立屬於自己的視覺化報表,這篇文章我就用Kaggle網站的 Most Subscribed YouTube Channel( 訂閱最多的 YouTube 頻道) 資料集為例,帶你認識Looker Studio的使用方式,並且學會製作雲端資料視覺化圖表,傳達資料價值或故事。

教你簡單上手Seaborn資料視覺化工具的重要實作

想要洞察資料的價值,除了可以使用 像是Power BI或Tableau等 市面上的產品,來製作視覺化的圖表之外,Python生態系也有提供資料視覺化圖表的套件,其中之一就是Seaborn套件,讓開發人員能夠透過寫程式的方式來客製化建立資料視覺化圖表,這篇文章就以 Kaggle網站的線上銷售資料集( Online Sales Data ) 為例,簡單上手Seaborn套件的使用方式。 什麼是Seaborn? Seaborn安裝方法 Seaborn連結CSV資料集 Seaborn建立資料視覺化圖表 一、什麼是Seaborn? Seaborn是以Matplotlib為基礎建構的高階繪圖套件,透過封裝的方式,簡化圖表的設定語法,提升輸出的視覺化美感,並且支援結合Pandas資料分析套件,讓使用者能夠快速產製精美的資料視覺化圖表。 二、Seaborn安裝方法 安裝Seaborn套件非常簡單,開啟命令提示字元,利用pip指令就可以進行安裝,如下: $ pip install seaborn 三、Seaborn連結CSV資料集 Seaborn套件安裝好之後,就可以開啟專案引用 Pandas模組來讀取資料集,還有 Seaborn、Matplotlib模組來建立圖表,如下範例: import pandas as pd import seaborn as sns import matplotlib.pyplot as plt 接下來,利用Pandas模組來讀取 Kaggle網站的線上銷售資料集( Online Sales Data ) ,如下範例第7行 : import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # 讀取資料集 onlineSalesData_df = pd.read_csv('Online Sales Data.csv') 四、Seaborn建立資料視覺化圖表 有了資料集之後,使用Matplotlib的pyplot模組來設定圖表的大小,如下範例第10行 : import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # 讀取資料集 onlineSalesData_df

Tableau實戰教學 - 快速打造企業級的資料視覺化圖表

  在資料分析的過程中,很多時候我們都需要快速探索資料背後的資訊或價值,進而解決商業上的問題,而資料視覺化就是常用來洞察資料的方法之一。那資料視覺化的工具非常多,這篇文章就來介紹Tableau資料視覺化工具,並且以 Kaggle網站的連鎖超市資料集 為例,教大家從零開始打造精美的資料視覺化圖表。

無痛學會Power BI有效建立互動式的資料視覺化圖表

在實務上,想要進行資料分析,探索大數據背後的價值或趨勢,很常會使用資料視覺化的方法來呈現,幫助決策人員進行商業決策。那資料視覺化的工具非常多,今天就來分享Power BI這套資料視覺化工具,並且以Kaggle網站的 Most Subscribed YouTube Channel( 訂閱最多的 YouTube 頻道) 資料集為例,手把手帶大家建立Power BI視覺化圖表。

Selenium網頁爬蟲串接ScraperAPI輕鬆應對網站的反爬蟲機制

在上一篇 有效利用ScraperAPI打造不被偵測的Python網頁爬蟲 文章中,介紹了Python網頁爬蟲串接 ScraperAPI 爬取網頁資料的方式,透過它隨機輪換Proxy IP、瀏覽器標頭等機制,讓我們不用擔心網頁爬蟲被偵測封鎖。那如果今天遇到了動態網頁,需要使用Selenium套件來操作網頁的話,該如何與 ScraperAPI 進行串接呢?這篇文章就來分享Selenium串接 ScraperAPI 的過程。

有效利用ScraperAPI打造不被偵測的Python網頁爬蟲

有些大型的網站,都會有網頁爬蟲的偵測機制,像是請求的標頭、IP、規則性等等,一旦被偵測到就很有可能被封鎖,沒辦法再使用該網站的服務,導致很多人不敢輕易嘗試爬取大型網站的資料。那想要降低被偵測風險的方法之一,就是隨機輪換不同的Proxy IP和請求標頭,最近看到 ScraperAPI 提供了這樣的解決方案,使用上也非常的簡單,又有1000 API額度可以免費使用,所以這篇文章就來分享一下 ScraperAPI 的使用方式。

一篇看完就懂Python網頁爬蟲爬取JavaScript網頁資料的實作

我們都知道在開發Python網頁爬蟲之前,都要先檢視網頁原始碼,瞭解網頁資料的結構之後才會進行爬取的動作。但是有些網頁在檢視網頁原始碼的時候,會發現找不到網頁上的資料,這就是網站為了防止資料被輕易的爬走,使用JavaScript的技術,動態載入網頁上的資料,讓Python網頁爬蟲無法從網頁原始碼裡面爬取到資料。 這篇文章我就用 雄獅旅遊網站 ,來和大家分享Python網頁爬蟲如何爬取JavaScript型網站的資料,其中的爬取步驟如下:

詳解Python網頁爬蟲下載網頁驗證碼圖片(Captcha)的系統化作法

相信大家平常在瀏覽網頁的過程中,都有看過文字驗證碼(Captcha),要使用者輸入正確的英文數字才可以繼續操作,那要通過這種反爬蟲機制,就是要先把文字驗證碼(Captcha)的圖片下載下來,再進行後續的辨識動作。 這時候如果你使用圖片的src屬性來下載文字驗證碼(Captcha)圖片,會發現下載下來的圖片和網頁上的不一樣,是因為當我們發送請求到圖片的來源網址時,等於又再打開一次網頁的意思,它就會再次產生不一樣的文字驗證碼,導致下載下來的圖片會不一樣,解決方案就是使用Selenium套件來下載 文字驗證碼(Captcha)圖片 ,這篇文章我就用 博客來 網站為例,來示範其中的實作方式。

教你學會Python網頁爬蟲自動化登入網站的秘訣

想要利用Python網頁爬蟲蒐集網路上的資料,除了一般網頁之外,有些還會需要進行"登入"的動作,才會顯示網頁資料,這也就是所謂的登入型網頁,最常見的像是Facebook、Instagram等社群網站。 這時候就可以利用Python的Selenium套件來模擬登入的動作,進而爬取到想要的資料。這篇文章我就用Facebook網站為例,來教大家Python網頁爬蟲如何利用Selenium套件來自動化登入網站。

揭密Selenium動態網頁爬蟲常用的網頁操作方法

很多新手在遇到動態網頁的時候,都會不知所措,因為它需要額外的網頁操作,像是會員登入、滾動網頁卷軸、點擊按鈕等等,才有辦法爬取到網頁資料。 今天這篇文章我就用 Facebook網站 為例, 分享在 建置Python動態網頁爬蟲上 , 最常使用的5個Selenium網頁操作方法,讓你之後可以順利爬取到動態網頁的資料,包含:

5個實用的Selenium網頁資料爬取方法應用指南

說到建置Python網頁爬蟲的工具,之前我有整理了一篇「 7個Python使用BeautifulSoup開發網頁爬蟲的實用技巧 」的教學文章,今天這篇就用 The News Lens 關鍵評論網的國際新聞 為例,來分享Selenium常用的爬取資料方法,讓大家在建置Python網頁爬蟲爬取動態網頁的時候,可以快速上手。

全面掌握Selenium建置動態網頁爬蟲的步驟與重要模組

如果有在開發Python網頁爬蟲的話,「 動態網頁」這個詞應該都不陌生 。那 想要爬取動態網頁上的資料,Selenium套件就是最常被用來開發網頁爬蟲的工具之一,透過它提供的網頁操作方法,來模擬使用者的操作,進而爬取到動態網頁的資料。 這篇文章我整理了Selenium建置網頁爬蟲專案的步驟與重要模組,幫助大家之後能夠更方便、快速的建立Python動態網頁爬蟲專案。

[Pandas教學]常用的Pandas套件合併CSV檔案資料的驗證方式

日常的資料分析工作中,有非常多的資料集需要處理,並且各資料集的結構與關係都不盡相同,這時候在利用Pandas套件來合併相關的資料集進行分析時,就可能發生不如預期的資料錯誤。 而Pandas套件常用的merge()及concat()合併資料方法(Method),也提供了資料驗證的機制,本文就來和大家分享其中的應用方式,避免在合併資料後,產生問題而影響分析結果。重點包含:

[Pandas教學]解析Pandas套件的Pivot Table(樞紐分析表)用法透視資料

在海量的數據中,如果沒有進一步的探索與分析,往往無法看出其中所傳達的訊息, 而使用Pandas套件的Pivot Table樞紐分析表,就能夠將欄位資料透過交叉比對的方式,進行群組、匯總及統計,幫助資料分析人員快速解讀資料。 本文就以 Kaggle網站的2017年Stack Overflow開發者調查資料集(survey_results_public.csv) 為例,帶大家瞭解Pandas套件的 Pivot Table樞紐分析表使用方式,包含:

[Pandas教學]你要學會的Pandas套件對於資料單位與格式的處理技巧

從各種管道蒐集資料的過程中,因為資料來源的不同,其中使用的「單位」或「格式」就可能有所不同,像是幣別、重量、日期或容量等,當進行資料合併或整合時,如果沒注意就會發生資料「單位」或「格式」不一致的問題。 而這會影響分析及預測的結果,所以,本文利用3個範例,讓大家學會使用Pandas套件進行「單位」或「格式」的統一,包含:

[Pandas教學]解密Pandas套件清理類別資料(Categorical Data)的方法

如果有在實作資料分析或機器學習的朋友就會知道,為了要群組或分類相似的資料,會使用標籤、代號或數字等類別資料(Categorical Data)進行分群。像是影像辨識,將相近的圖片使用特定的標籤來代表,提升分析或訓練模型的效率。 但是當資料量非常龐大時,就可能因為人為輸入或解析有誤,導致類別資料(Categorical Data)產生不一致的問題。所以,本文以 Kaggle網站的銀行直銷資料集(bank-direct-marketing-campaigns.csv) 為例,來聊聊如何利用Pandas套件來進行清理。重點包含:

[Pandas教學]3個實用的Pandas套件清理重複資料教學

當遇到一個商業問題或假設,要從各個管道蒐集資料來解決問題時,像是檔案、網頁及公開資料庫等,而在進行資料整合的過程中, 如果處理流程不夠完善,就有機會產生重複的資料 誤導分析的結果 。 本文以 Kaggle網站的Amazon 2009-2019年Top50暢銷書資料集(bestsellers with categories.csv) 為例,教大家如何查找及清理資料集的重複資料,提升資料的品質。重點包含:

[Pandas教學]善用Pandas套件幫你清理資料範圍異常的資料

在大量的數據中,有時為了精準分析特定群組的資料,通常都會依需求定義所要分析的資料範圍,像是評價、日期及年齡區間等 。 而在蒐集資料或人為處理資料的過程中,就有可能發生資料超出所要分析的範圍錯誤,導致分析結果出現異常。本文將以 Kaggle網站的Kindle Store電子書店評論資料集(kindle_reviews.csv) 為例 ,來和大家分享 如何利用Pandas套件來處理 以下兩種類型的資料範圍錯誤:

[Pandas教學]教你用Pandas套件清理資料中的常見資料型態問題

想要實作資料分析,讀取資料是第一步所要執行的動作,而如果沒有正確的進行資料前處理(Data Preprocessing),就會影響最後分析結果的準確性及可靠性。 其中,最常見的基本資料問題,包含「資料型態」、 「資料範圍」及 「重複資料」, 本文就先針對 「資料型態」, 來和大家分享如何有效找出髒資料(Dirty Data),並且利用Pandas套件來進行資料處理或清理,避免髒資料(Dirty Data)導致分析的副作用 :

[Scrapy教學13]掌握3個降低Scrapy網頁爬蟲被封鎖的技巧

在市面上眾多的Python網頁爬蟲工具中,如果想要開發大型的網頁爬蟲專案,這時候都會使用Scrapy框架,擁有完整的爬取、儲存及效率等功能。而Scrapy框架如何克服網站的反爬蟲機制呢? 看完這篇文章,你將學會在Scrapy框架中,利用以下三個常見的實用方法,降低反爬蟲網站的偵測風險:

[Scrapy教學12]在Scrapy框架整合Selenium套件爬取動態網頁的實作指南

現在市面上,為了增加Python網頁爬蟲爬取資料的困難度,都會使用反爬蟲機制,像是登入、驗證碼及JavaScript動態產生內容等,而Scrapy框架沒有JavaScript Engine(引擎),所以,通常都會結合Selenium或Splash套件來爬取這些動態網頁。 本文就以 Accupass網站 的精選活動為例,來分享Scrapy框架整合Selenium套件,開發Python網頁爬蟲的流程,包含:

[Python爬蟲教學]掌握這6個開發重點優化Python網頁爬蟲的效率與穩定度

Python網頁爬蟲是現在非常受歡迎的資料蒐集方式之一,而在定期爬取的過程中,非常有機會因為網頁架構或樣式的改變,導致Python網頁爬蟲發生錯誤中斷。所以,本文提供以下6個檢查點,只要在開發時特別留意,將會讓Python網頁爬蟲較為穩定及有效率。包含:

[Python爬蟲教學]學會Python網頁爬蟲輪流或隨機使用Proxy IP發送請求的技巧

利用Python網頁爬蟲爬取網頁資料已經是常見的資料蒐集方法之一,但是在爬取的過程中,難免擔心會不會被網站偵測或封鎖,繼 [Python爬蟲教學]有效利用Python網頁爬蟲爬取免費的Proxy IP清單 文章之後,看完本篇文章,你將學會如何在Python網頁爬蟲專案,透過隨機使用不同的Proxy IP發送請求,降低被偵測或封鎖的機率。實作步驟包含 :

[Python爬蟲教學]有效利用Python網頁爬蟲爬取免費的Proxy IP清單

Photo by Cytonn Photography on Unsplash 在開發網頁爬蟲的過程中,是不是會擔心被偵測或封鎖,而爬不到所需的資料呢? 有些大型網站為了保護網頁上的資料不被大量的爬取,會特別偵測像Python網頁爬蟲這種非人工的自動化請求,這時候 Python網頁爬蟲 使用相同的IP來發送請求就很容易被發現。 所以,如果有多組IP能夠讓Python網頁爬蟲在發送請求時輪流使用,就能夠大幅降低被偵測的風險。 而現在有許多網站上也有提供免費的Proxy IP,本文就以 Free Proxy List 網站為例,透過Python網頁爬蟲來蒐集上面的Proxy IP,製作我們的IP清單。實作步驟包含:

[Pandas教學]使用Pandas套件將資料集拆分成多個CSV檔案資料應用

Photo by Mad Fish Digital on Unsplash 當單一資料集過於龐大,想要拆分為不同的檔案,或 在實作機器學習時,需要將資料集分為測試及訓練資料等,這時候就有機會把單一CSV檔案中的資料,依據特定條件拆分成多個CSV檔案。 而使用Pandas套件來進行資料分析,就能夠很輕鬆的解決以上任務,本文就以Kaggle網站的「 Coursera Course Dataset( coursea_data.csv ) 」 資料集為例,基於其中的課程難易度等級欄位(course_difficulty),來分別拆分多個CSV檔案,實作步驟 包含:

[Pandas教學]3個Pandas套件比較CSV檔案資料之間的差異秘訣

Photo by Elena Kloppenburg on Unsplash 使用Pandas套件處理多份CSV檔案資料,相信是資料分析的過程中不可或缺的任務之一,其中,很常有機會比較各個資料集的相同與不相同資料內容,藉此來瞭解差異或檢核資料整合的結果是否有誤。 所以,本文就以Kaggle網站的「 Coursera Course Dataset( coursea_data.csv ) 」及 「 Course Reviews on Coursera(Coursera_courses.csv) 」 兩個 資料集為例,來分享3個Pandas套件比較CSV檔案資料集的 常用 方法,包含:

[Python爬蟲教學]常見的Python網頁爬蟲自動化下載檔案資料方法

Photo by Helena Lopes on Unsplash 在進行網頁資料分析的過程中,除了網頁資訊外,有時也會有檔案資料,供使用者下載使用,像是股市相關的網站,就會有各種不同的財務報表下載,這時候, 就可以結合Python網頁爬蟲的特性,來自動化下載檔案資料, 協助股市資料 的 分析實作。 本文就以 證券交易所 的 個股日成交資訊 及 上市公司季報 為例,來分別和大家分享以下兩個常見的Python檔案資料下載方式,包含: