跳到主要內容

發表文章

必學的Python Selenium套件自動化網頁截圖技巧

Photo by Marga Santoso on Unsplash 平時在瀏覽網頁的時候,相信大家有時會對於網頁上的某部分資訊感到有興趣,就會想要透過截圖的方式保存下來,就像是 Yahoo奇摩股市 網站,提供了不少資料視覺化的圖表,如果能夠利用網頁截圖的技巧,就可以大幅提升每天的分析效率 。 所以,今天就以 Yahoo奇摩股市 網站為例,來 和大家分享如何使用Python Selenium套件的自動化截圖方法(Method),截取 網頁圖表,其中的重點包含 :

[Python爬蟲教學]定時自動化執行Google(GCP)雲端平台上的Python網頁爬蟲方法

Photo by Clay Banks on Unsplash 在 [Python爬蟲教學]3步驟教你部署Python網頁爬蟲到Google(GCP)雲端平台 文章中,和大家分享了部署Python網頁爬蟲到Google Cloud Platform雲端平台,並且能夠將爬取的資料存入Google BigQuery數據庫,而接下來該如何定時自動化執行Python網頁爬蟲呢? 這時候,就會需要利用 Google Scheduler(雲端排程器),透過自訂時間來排程執行Python網頁爬蟲,其中的實作重點包含:

[Python爬蟲教學]3步驟教你部署Python網頁爬蟲到Google(GCP)雲端平台

Photo by Firmbee.com on Unsplash 利用Python網頁爬蟲來進行資料蒐集,想必都會希望能夠自動化的持續運行,將爬取的資料儲存在資料庫中,讓後續可以輕鬆的使用與分析,而要達成自動化的持續運行,就需要將Python網頁爬蟲部署到雲端平台上 。 所以,本文就來接續 [Python爬蟲教學]Python網頁爬蟲寫入資料到Google BigQuery雲端數據庫指南 文章,把其中建置的Python網頁爬蟲部署到Google Cloud雲端平台,並且依然保有原來資料儲存到Google Bigquery數據庫的功能。其中的實作步驟包含:

[Python爬蟲教學]Python網頁爬蟲寫入資料到Google BigQuery雲端數據庫指南

Photo by Souvik Banerjee on Unsplash 在使用Python網頁爬蟲搜集資料的過程中,隨著時間的累積,資料量就會逐步的增加形成大數據,這時候,就會需要藉由雲端資源來協助我們進行資料分析。 而Google BigQuery雲端數據庫(Cloud Data Warehouse)就是一個非常強大的資料儲存分析工具,除了能夠儲存大量的數據外,還擁有很好的查詢效能,並且可以結合Google Data Studio來進行資料視覺化。 所以本文就接續 [Python爬蟲教學]一學就會的Python網頁爬蟲動態讀取資料庫應用 文章, 來和大家分享,如何將Python網頁爬蟲爬取的資料,載入Pandas DataFrame後,存入Google BigQuery資料表,以利於分析。其中的實作步驟包含:

[Python爬蟲教學]一學就會的Python網頁爬蟲動態讀取資料庫應用

Photo by CardMapr.nl on Unsplash Python網頁爬蟲在日常生活中有非常多的應用,股票分析就是其中之一,利用Python網頁爬蟲自動化爬取的特性,蒐集所需的各個公司股價資訊。 但是隨著經濟的變動,關注的股票代碼時常會進行調整,這時候,該如何讓Python網頁爬蟲有彈性的讀取股票代碼就很重要 。 而資料庫就是實務上最常使用的資料儲存工具,本文就以SQLite資料庫為例,來和大家分享Python網頁爬蟲如何動態讀取資料庫中所要分析的股票代碼資料,來爬取 臺灣證券交易所 的 個股日成交資訊 。其中的實作步驟包含:

[Python爬蟲教學]Selenium動態網頁爬蟲通過Captcha驗證碼的實用技巧

Photo by Christina @ wocintechchat.com on Unsplash 想必大家在開發網頁爬蟲的過程中,都會有遇到各種反爬蟲機制的經驗,而Captcha就是其中一種透過圖片驗證的方式,來增加Python網頁爬蟲爬取資料的困難度。 所以,本文就以 博客來網路書店 的登入頁面為例,來和大家分享如何利用 2Captcha服務 ,破解登入時的一般驗證碼(Normal Captcha),順利登入會員。其中實作的重點包含:

[Pandas教學]有效使用Pandas Profiling套件實現探索式資料分析(EDA)

Photo by Giorgio Tomassetti on Unsplash 當手上有一份數據資料要進行分析,這時候如果是使用Pandas套件,通常會利用describe()方法(Method),來初步瞭解資料內容,但是對於想要深入分析資料集來說,資訊還不夠充足。 所以本文就以 Kaggle網站的「Netflix data with IMDB scores added」資料集(mycsvfile.csv) 為例,來和大家分享一個很常用來進行 探索式資料分析( Exploratory Data Analysis )的套件-Pandas Profiling, 能夠將Pandas DataFrame中儲存的資料,產製為一個互動式的網頁報表,並且以視覺化的方式呈現詳細的資料結構。其中的重點包含:

[Pandas教學]利用Pandas套件的to_html方法在網頁快速顯示資料分析結果

Photo by Yura Fresh on Unsplash 資料蒐集的過程中,為了能夠有效的整理資料,通常都會搭配使用Pandas套件來進行實作,而在完成資料整理後,有時就會需要將資料顯示在網頁上,藉此分享其中的資訊 。 Pandas套件也提供了內建方法(Method),讓資料分析人員能夠將Pandas DataFrame中整理好的資料,轉為HTML的表格來加以運用,本文就以 Kaggle網站的「Netflix data with IMDB scores added」資料集(mycsvfile.csv) 為例,來和大家分享如何利用Pandas套件將讀取到的資料顯示在網頁上,重點包含:

[Pandas教學]4個必學的Pandas套件處理遺漏值(Missing Value)資料方法

Photo by Eugene Chystiakov on Unsplash 遺漏值(Missing Value)的處理可以說是在資料清理的過程中,不可或缺的步驟之一,而Pandas套件也提供了許多實用的方法(Method),讓分析人員能夠有效的探索與檢視 遺漏值(Missing Value),並且進行適當的處理。 所以,本文以 Kaggle網站的「Netflix data with IMDB scores added」資料集(mycsvfile.csv) 為例,來和大家分享筆者在處理 遺漏值(Missing Value)時, 常用的Pandas套件方法(Method),包含:

[Pandas教學]有效利用Pandas套件的pipe方法打造資料處理流程管道

Photo by Zan on Unsplash 想要在機器學習或資料分析的過程中順利實作,資料集的前置處理就非常重要,像是資料清理或篩選等,而這些動作通常都是一個有順序性的流程,雖然能透過一次一次的呼叫Pandas套件方法(Method)來達成,但是如果想要讓程式碼可讀性高,以及自動化重複性的資料處理流程,就需要建置資料處理管道(Pipeline)。

[Pandas教學]3個優化Pandas套件讀取大型CSV檔案資料的技巧

Photo by Michael Dolejš on Unsplash 對於資料分析人員來說,Pandas套件相信是最受歡迎的套件之一,提供了許多強大而簡單的方法(Method)來操作資料,但是當處理的資料量較多時,讀取效率就會顯得非常的慢,並且耗用大量的記憶體資源 。

[Pandas教學]一定要學會的Pandas套件讀寫Google Sheets試算表資料秘訣

Photo by Brett Jordan on Unsplash Google Sheets(試算表)相信大家都不陌生,能夠允許多個使用者在上面同時協作,不論是新增或編輯資料等, 對於資料分析來說,就是一個非常好的儲存與共享資料工具 。

[Pandas教學]客製化Pandas DataFrame樣式提升資料可讀性的實用方法

Photo by Sean Lim on Unsplash 面對大量資料的分析工作中,有時想要快速識別遺漏的值,或是已經整理好報表資料,想要為老闆強調某些重要的數字等,這時候除了可以將資料匯出到Excel進行處理外,Pandas套件也提供了許多客製化Pandas DataFrame樣式的功能,來解決以上的需求。

[Pandas教學]3個Pandas套件合併多個CSV檔案資料的實用技巧

Photo by Walling on Unsplash 你有沒有過這樣的經驗,分析的資料分散在多個CSV檔案中,想要利用Pandas套件進行合併,來實作後續的資料處理呢?如果所要分析的資料量或欄位較多時,相信資料被分類在多個CSV檔案中的情況是有機會發生的,這時候就會需要使用Pandas套件的合併方法(Method)來整合多個CSV檔案的資料 。

[Pandas教學]看完這篇就懂Pandas套件如何即時讀取API的回應資料

Photo by LinkedIn Sales Solutions on Unsplash 現在有許多網站,為了 共享擁有的資料或服務, 都會透過建立API(Application Programming Interface)的方式,給外部的使用者進行更多元的應用,對於網站來說,除了能夠方便授權外,也可以彈性管理所提供的資料內容。 這時候,如果想要利用Pandas套件強大的資料分析功能,處理網站API所回傳的JSON格式資料內容,該怎麼實作呢?本文就以 痞客邦(PIXNET)網站的Open Data API 為例,來和大家分享Pandas套件如何讀取回傳的熱門美味食記文章資料,重點包含:

[Pandas教學]快速掌握Pandas套件讀寫SQLite資料庫的重要方法

Photo by Mia Baker on Unsplash 好不容易蒐集到所需的大量資料,經過一連串的 資料清理 、 格式化 、 排序 與 篩選 等前置操作,為了後續的應用及分析,想必都會寫入資料庫中來留存,Pandas套件當然也提供了相關的方法(Method),讓開發人員除了可以將Pandas DataFrame中的資料存入資料庫外,相對的,也能夠透過SQL語法讀取資料庫中的資料 。

[Pandas教學]輕鬆入門3個常見的Pandas套件排序資料方式

Photo by Taras Shypka on Unsplash 面對現實生活中所蒐集來的各式各樣資料,想要能夠快速的進行初步整理,並且有效觀察其中的內容,資料排序可以說是最常使用的方法之一。 而Pandas套件對於資料排序的功能,也提供了非常好支援,本文就以 Kaggle網站的2009-2019年Amazon前50名暢銷書資料集(bestsellers with categories.csv) 為例, 帶大家來瞭解如何在資料集中應用Pandas套件的排序方法(Method)。重點包含:

[Python+LINE Bot教學]一篇搞懂如何在Django框架整合多個LINE Bot機器人服務

Photo by freestocks on Unsplash LINE Bot的自動化回覆訊息功能,普遍的應用在日常生活中,尤其是服務的提供者,都會利用LINE Bot來推播最新消息或回覆客戶的問題等。 隨著各種不同類型的需求增加,有時就會需要更多的LINE Bot來提供服務,而在開發的過程中,普遍都是一個專案包含一個LINE Bot,就會造成有多個專案需要維護,有沒有辦法在一個專案中,包含多個LINE Bot呢?

[Pandas教學]有效利用Pandas套件篩選資料的應用技巧

Lee Campbell on Unsplash 在對資料集進行分析的過程中,有時並不是所有的資料內容都符合需求,往往會透過條件篩選的方式,取得部分資料集來觀察與操作,除了能有更多的變化應用外,也可以對資料有更深入的理解。 所以在學習Pandas套件時,如何篩選出符合自己需求的資料就是一大重點,本文利用 Kaggle網站的星巴克滿意度調查資料集( Starbucks satisfactory survey.csv ) ,來和大家分享Pandas套件篩選資料的常見語法應用,包含:

[Pandas教學]善用Pandas套件的Groupby與Aggregate方法提升資料解讀效率

Content Pixie on Unsplash 為了要能夠在海量的數據資料中,透過資料分析的方式來得知其中的價值,進而做出決策或發現趨勢,就需要簡單的統計方法來幫助理解資料內容,才有辦法將資料做最有效的應用。 所以,本文就以 Kaggle網站的星巴克滿意度調查資料集( Starbucks satisfactory survey.csv ) 為例,分享三個常用的Pandas套件統計方法(Method)來解讀資料內容,包含:

[Pandas教學]使用Pandas套件實作資料清理的必備觀念(下)

DocuSign on Unsplash 使用Pandas套件實作資料清理時,除了對於遺漏、重複與拆分資料的處理外,資料型態與格式也是資料清理過程中需要注意的,這時候就可以利用Pandas套件所提供的轉型與格式化方法(Method)來有效的進行操作。 所以,本文接續 [Pandas教學]使用Pandas套件實作資料清理的必備觀念(上) 文章,使用 Kaggle網站的「Netflix data with IMDB scores added」資料集(mycsvfile.csv) , 針對資料型態與格式的部分,來和大家分享幾個Pandas套件提供的方法(Method)應用,包含:

[Pandas教學]使用Pandas套件實作資料清理的必備觀念(上)

Ioan F on Unsplash 在資料分析的過程中,蒐集來的大量數據很可能不是那麼完整,像是含有空值、NULL或重複等,這時候就需要適當的清理與處理,讓資料集更符合所需,進而能夠精確的分析。 而Pandas套件提供了許多資料清理的方法(Method),本文就以 Kaggle網站的「Netflix data with IMDB scores added」資料集(mycsvfile.csv) 為例,來和大家分享這些方法(Method)的應用方式,包含:

Visual Studio Code漂亮印出Pandas DataFrame資料的實用方法

Pankaj Patel on Unsplash Pandas套件相信是Python開發人員在資料分析的領域中, 最普遍使用的工具之一,對於蒐集來的資料進行後續觀察及清理都相當的便利,而如果您和筆者一樣是Visual Studio Code開發工具的愛好者,利用Pandas套件操作資料後,在印出結果時,就會長得像以下的圖樣:

[Pandas教學]資料視覺化必懂的Pandas套件繪製Matplotlib分析圖表實戰

Ruthson Zimmerman on Unsplash 資料分析一詞相信大家耳熟能詳,目的就是將蒐集到的大量數據,經過有效整理及分析後,來洞悉其中的價值,進而提供更好的用戶體驗或是預測未來的趨勢。

[Scrapy教學11]學會使用3個Scrapy網頁爬蟲偵錯技巧提升開發效率

Photo by Sigmund on Unsplash 在實務上開發Scrapy網頁爬蟲時,難免過程中會發生錯誤或產生問題,這時候該如何有效的偵錯找到原因,進而提升開發效率及品質,就是一個非常重要的議題。 而Scrapy網頁爬蟲框架提供了許多非常實用的方法,來幫助開發人員有效的偵錯,本文就 來和大家分享3個筆者最常使用的偵錯方法,包含:

[Scrapy教學10]不可不知的Scrapy框架爬取下一層網頁資料實作

Photo by Surface on Unsplash 想要進行資料分析,除了利用Python網頁爬蟲蒐集第一層的網頁資料外,有時候為了要 更瞭解資料的內容或是 讓分析的結果更加精確,就會需要爬取下一層的網頁,也就是詳細資料。 舉例來說,筆者想要對不同廠牌的筆電進行分析,這時候使用Python網頁爬蟲除了取得網頁第一層的筆電名稱外,還需要爬取每個筆電的下一層網頁,來取得詳細的規格內容,才有辦法進行比較。

[Scrapy教學9]一定要懂的Scrapy框架結合Gmail寄送爬取資料附件秘訣

Photo by Solen Feyissa on Unsplash 在Python網頁爬蟲蒐集資料的過程中,除了能夠將資料 存入資料庫 或 匯出成檔案 外,另一個最常應用的場景就是「訊息通知」,也就是在利用Python網頁爬蟲蒐集到所需的資料後,透過訊息通知的管道來推送資料結果。 舉例來說, [Python爬蟲教學]Python網頁爬蟲結合LINE Notify打造自動化訊息通知服務 文章整合了LINE Notify服務,來通知使用者Python網頁爬蟲取得的降價訊息,而本文則要來和大家分享另一個訊息通知管道的結合,也就是電子郵件。

[Scrapy教學8]詳解Scrapy框架爬取分頁資料的實用技巧

Photo by Austin Distel on Unsplash 相信大家在瀏覽網頁的經驗中,都有看過利用分頁的方式來呈現,將內容切分為好幾頁,除了能夠提升網頁的執行效率外,也增加了使用者的體驗。 在前面的Scrapy網頁爬蟲框架系列教學中,皆分享了爬取單一網頁的內容,這時候如果想要利用Scrapy網頁爬蟲框架來爬取多頁的資料,該如何實作呢?本文就來延續 [Scrapy教學7]教你Scrapy框架匯出CSV檔案方法提升資料處理效率 文章的教學內容,一起來學習這個技巧吧。

[Scrapy教學7]教你Scrapy框架匯出CSV檔案方法提升資料處理效率

Photo by Maxwell Ridgeway on Unsplash 在實作Python網頁爬蟲時,有一個非常重要的議題,就是如何將爬取到的資料有效儲存起來,這時候除了能夠像 [Scrapy教學6]解析如何在Scrapy框架存入資料到MySQL教學 文章一樣,存入資料庫外,另一個最常使用的方法,就是檔案的匯出,像是CSV、JSON及XML等。

[Scrapy教學6]解析如何在Scrapy框架存入資料到MySQL教學

Photo by Cytonn Photography on Unsplash 在利用Scrapy框架開發網頁爬蟲的過程中,成功取得想要蒐集的資料後,下一個步驟就是資料的儲存,像是存入資料庫或是檔案中等,這時候,就會需要使用到Scrapy框架的item資料模型及pipeline資料模型管道模組(Module),來幫助開發人員建立好維護的資料處理方式。

[Scrapy教學5]掌握Scrapy框架重要的XPath定位元素方法

Photo by Markus Winkler on Unsplas h Scrapy網頁爬蟲框架除了提供 [Scrapy教學4]掌握Scrapy框架重要的CSS定位元素方法 文章中所分享的css()方法(Method)來定位網頁元素(Element)外,也提供了xpath()定位方法(Method)讓開發者使用。 XPath(XML Path Language)是一個使用類似檔案路徑的語法,來定位XML文件中特定節點(node)的語言,因為能夠有效的尋找節點(node)位置,所以也被廣泛的使用在Python網頁爬蟲的元素(Element)定位上。

[Scrapy教學4]掌握Scrapy框架重要的CSS定位元素方法

Photo by NordWood Themes on Unsplash 想要開發Python網頁爬蟲的朋友,都會知道 定位 元素(Element)是一個非常重要的動作,在 [Scrapy3教學]如何有效利用Scrapy框架建立網頁爬蟲看這篇就懂 文章中,使用了Scrapy框架的bs4 模組( Module ),也就是 BeautifulSoup的語法,來示範爬取目標網頁中的HTML元素(Element)。 但事實上,Scrapy框架本身就有提供自己的 定位 元素(Element)方法(Method),包含CSS與XPath兩種,而本文將延續使用 [Scrapy3教學]如何有效利用Scrapy框架建立網頁爬蟲看這篇就懂 文章的 INSIDE 硬塞的網路趨勢觀察網站- AI 新聞 為例,先 來和大家分享在Scrapy框架中,如何利用CSS的 定位 元素(Element)方法(Method),爬取想要的網頁內容,重點包含:

[Scrapy教學3]如何有效利用Scrapy框架建立網頁爬蟲看這篇就懂

Photo by Alex Kulikov on Unsplash 在 [Scrapy教學2]實用的Scrapy框架安裝指南,開始你的第一個專案 文章,完成Scrapy框架的 安裝 以及專案的建立後,接下來,就可以在其中開發網頁爬蟲,而在開發之前,又有哪些基本的觀念需要知道?本文將 一步一步 帶大家來進行瞭解,重點包含:

[Scrapy教學2]實用的Scrapy框架安裝指南,開始你的第一個專案

Photo by Jeff Sheldon on Unsplash 繼 [Scrapy教學1]快速入門Scrapy框架的5個執行模組及架構 文章,瞭解Scrapy框架的5個主要模組相互之間的關係與執行流程後,本文將帶大家在Windows環境中,安裝Scrapy框架,並且提示可能會遇到的錯誤該如何解決,最後,建立屬於您的第一個Scrapy專案,來一窺其中的檔案結構。重點包含:

[Scrapy教學1]快速入門Scrapy框架的5個執行模組及架構

Photo by Štefan Štefančík on Unsplash 一般想要自動化蒐集網頁上的資料時, 普遍都會使用像BeautifulSoup或Selenium套件開發 Python網頁爬蟲來取得,但是,如果所要爬取的資料量較大,擁有複雜的邏輯處理及效率的要求,這時候就會建議使用Scrapy框架,來幫助開發人員建立一個維護性較好的Python網頁爬蟲。

[Python爬蟲教學]你該學會的Python網頁爬蟲取得網頁圖表數據方法

Photo by Markus Winkler on Unsplash 如果大家有在觀測或分析趨勢,會看到有些網頁會以圖表的方式來呈現資料,透過使用者將滑鼠移上去後,顯示每個點的數據,來提升可讀性及使用體驗,這時候,如果想要利用Python網頁爬蟲來爬取圖表上的數據,進行客製化的分析,該如何達成呢? 本文將以 Yahoo奇摩股市 的「美股大盤行情圖表」為例,帶大家了解網頁圖表的顯示原理,並且該如何利用這樣的原理,讓Python網頁爬蟲能夠取得資料。

[Pandas教學]5個實用的Pandas讀取Excel檔案資料技巧

Photo by LinkedIn Sales Navigator on Unsplash 日常生活中,不免俗的都會有需要整理大量資料的需求,而最常用的文書軟體就是Excel,這時候該如何有效讀取Excel檔中的資料,進行額外的整理及操作呢? 本文將以 政府開放資料平台-歷年國內主要觀光遊憩據點遊客人數月別統計 的資料內容為例, 利用Python的Pandas套件,來和大家分享實務上最常見的Excel讀取操作,藉此來提升資料處理的效率。

[Python爬蟲教學]善用多執行緒(Multithreading)提升Python網頁爬蟲的執行效率

Photo by Chris Spiegl on Unsplash Python網頁爬蟲的執行效率,相信是開發人員在蒐集網頁資料時所追求的,除了可以使用 GRequests 或 Asyncio 等套件打造非同步的Python網頁爬蟲外,應用 多執行緒(Multithreading)的技巧也是不錯的選擇。 所以本文想來和大家分享程序(Process)與執行緒(Thread)的差別,以及 多執行緒(Multithreading )的重要觀念,最後,實際應用在Python網頁爬蟲專案,提升執行效率。

BeautifulSoup vs Selenium vs Scrapy三大Python網頁爬蟲實作工具的比較

Photo by Prince Abid on Unsplash 網路的普及,為了要自動化的搜集資料,提升工作效率,相信Python網頁爬蟲是最常使用的方法之一,而要實作Python網頁爬蟲,最受歡迎的三大工具莫過於BeautifulSoup、Selenium及Scrapy,其中各自的主要特色以及使用時機,本文就來為大家進行簡單的分享與比較。

解析Python網頁爬蟲如何有效整合Pandas套件提升資料處理效率

Photo by Austin Distel on Unsplash 為了能夠自動化蒐集網頁上的資料,通常都會利用Python網頁爬蟲來幫忙完成,而蒐集到的資料如果想要進行排序、群組或篩選的動作,就需要花費不少的功夫來達成。 這時候,就能夠整合Pandas資料分析套件,將爬取的資料存入DataFrame資料結構,使用它所提供的方法,即可輕鬆操作其中的資料,除了提升處理資料的效率,也能夠讓程式碼更加簡潔。

[Pandas教學]掌握Pandas DataFrame讀取網頁表格的實作技巧

Photo by Windows on Unsplash 在 [Pandas教學]資料分析必懂的Pandas DataFrame處理雙維度資料方法 文章的分享中,可以得知Pandas DataFrame資料結構非常適合用於表格式 資料的儲存及處理,也因此被應用於許多的情境,而讀取網頁上的表格 (Table) 資料則是最常見的應用之一。

[Pandas教學]資料分析必懂的Pandas DataFrame處理雙維度資料方法

Photo by Slidebean on Unsplash 現在有許多的企業或商家,都會利用取得的使用者資料來進行分析,瞭解其中的趨勢或商機,由此可見,資料分析越來越受到重視,而這時候,能夠懂得使用資料分析工具就非常的重要。 在上一篇 [Pandas教學]資料分析必懂的Pandas Series處理單維度資料方法 文章中,分享了Pandas Series資料結構用於處理單維度資料集的實用方法,而本文則要來介紹Pandas套件的另一個非常重要的資料結構,也就是 DataFrame。

[Pandas教學]資料分析必懂的Pandas Series處理單維度資料方法

Photo by Myriam Jessier on Unsplash 在隨手可得的數據時代,資料分析逐漸成為顯學,利用視覺化軟體或是分析處理工具,將蒐集的資料轉變為有用的資訊,來協助使用者進行決策。 Pandas套件則是其中一種常用的資料分析處理工具,它是基於Python程式語言來建立的,非常容易使用且強大,主要應用於單維度(Series)與二維度(DataFrame)的資料處理。

[Python爬蟲教學]開發Python網頁爬蟲前需要知道的五個基本觀念

Photo by UX Indonesia on Unsplas h 網際網路的盛行,日常生活中充滿了大量的資訊,也因此越來越多的使用者會利用Python網頁爬蟲技術,來蒐集想要的資料,藉此來進行分析及應用,為了讓讀者能夠快速入門Python網頁爬蟲,本文想來和大家分享在開發前,需要知道的五個基本觀念,包含: 什麼是網頁爬蟲 網路的運作方式 網頁的基本結構 常見的套件及框架 網頁爬蟲開發流程 一、什麼是網頁爬蟲 網頁爬蟲可以把它想像成是一種網頁機器人,能夠依照特定的模式或規則,自動化擷取網頁原始碼,來進行解析取得資料,所以被大量的應用在網頁資料蒐集。 當然網頁爬蟲部一定只能使用Python來進行實作,其它像Java、C#及JavaScript等程式語言也可以,而因為Python語法簡潔及擁有許多成熟的套件與框架,所以筆者選擇Python來開發網頁爬蟲。 二、網路的運作方式 Python網頁爬蟲事實上就是模擬使用者來瀏覽網頁,這時候就需要瞭解網路的基本架構,分為用戶端(Client)及伺服端(Server)。 其中,用戶端(Client)就是使用者瀏覽網頁的裝置(例:本機電腦),當使用者點擊網頁時,也就代表請求(Request)的動作,存取該網頁連結的伺服端(Server),而伺服端(Server)接收連結得知使用者所要看的網頁後,將內容回應(Response)給用戶端(Client),如下圖: 這樣的網路運作方式就跟點餐的流程非常相似,當我們進到一間餐廳看著菜單,就像到一個網站瀏覽其中的網頁,接著,到櫃檯向老闆點餐的動作就像是看到喜歡的網頁,請求(Request)伺服端(Server)想看的網頁,最後,等待老闆烹飪完成送到餐桌上,像是伺服端(Server)端處理完成回應(Response)給使用者。 而在開發Python網頁爬蟲時,這邊有兩個重要的觀念,分別是: 請求方法(Request Method) 等待回應(Waits) 請求方法(Request Method)基本上分為四種,包含GET(查詢)、POST(新增)、PUT(修改)及DELETE(刪除),由於Python網頁爬蟲大部分皆是查詢伺服端(Server)想要存取的網頁,所以請求方法(Request Method)都是使用GET(查詢)。 另外,等待(Wait)伺服端(Server)的回應(Respons

[Django+Python網頁爬蟲教學]打造具有網頁爬蟲功能的關鍵字查詢網頁

Photo by Burst on Unsplash Python網頁爬蟲在日常生活中的應用非常普遍,用來自動化蒐集所需的資料,這時候如果能夠提供使用者一個介面,即可以依據不同的需求來爬取相應的資料,提升服務的體驗及彈性。

[Python爬蟲教學]快速搞懂AJAX動態載入網頁的爬取秘訣

Photo by LinkedIn Sales Navigator on Unsplash 在使用Python網頁爬蟲爬取網頁時,有些網頁為了提升使用體驗及維持執行效能,會使用AJAX的技術, 非同步向伺服器傳送參數,取得資料來進行顯示, 使用者不會感受到畫面有任何的閃爍或停頓,依然能夠正常的使用網頁。 不過想要爬取這種類型的網頁,點擊滑鼠右鍵檢視原始碼時,會看到滿滿的Unicode編碼資料,沒有HTML標籤,這時候要來爬取網頁時,會完全抓不到資料。 由於筆者在爬取 KKday網站 的一日遊票券時,就是遇到這樣的情況,所以想藉此來和大家分享Python網頁爬蟲該如何爬取AJAX類型的網頁,其中的開發流程如下: 分析網頁 分析AJAX回傳結果 開發Python網頁爬蟲 一、分析網頁 首先,前往 KKday網站 ,假設在搜尋的地方輸入「新竹市」進行搜尋後,在網頁左側的「所有商品類別」中,選擇「觀光旅行」下的「一日遊」,就可以查到新竹市一日遊的相關票券,如下圖: 這時候,點擊滑鼠右鍵檢視網頁原始碼時,會完全找不到網頁上所顯示的票券名稱,都是Unicode編碼,這就是典型的AJAX類型網頁,也因為瀏覽器有辦法解析,所以網頁能夠正常的顯示中文字。 為了觀察網頁載入時,網頁向伺服器發送的請求(Request),點擊F12鍵開啟開發者模式,並且在原網頁點擊F5鍵重新整理,就可以在開發者模式的Network頁籤下,看到每一個請求(Request),如下圖: 接著,就要來找哪一個請求(Request)的回應(Response)是網頁上的資料,以上圖第6個請求(Request)為例,點擊後,可以在「 Headers」 看到它的請求(Request)內容,如下圖: 而要看這個請求(Request)的回應內容,可以切換到「Preview」頁籤來檢視,如下圖: 從上圖即可看到網頁上所顯示的票券資料,也就代表如果要使用Python網頁爬蟲來發送請求(Request)時,就是要使用「Headers」頁籤下的「Request URL」網址,如下圖: 從請求網址(Request URL)可以看到其中包含了幾個查詢的條件,目前只有輸入關鍵字(keyword)及選擇商品類別(cat),其它查詢條件都沒有輸入或保留預設值,所以,可以將請求網址(Request URL)簡化為: 「https://www.k