跳到主要內容

文章

[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

[Python爬蟲教學]有效利用Python網頁爬蟲幫你自動化下載圖片

Photo by Soragrit Wongsa on Unsplash 圖像辨識的技術,現在已經廣泛的應用在日常生活中,舉例來說,Google相簿就有使用圖像辨識的技術,來協助使用者標記景點或人物,或是Facebook使用圖片辨識來取出圖片中的文字,來找出違反政策的貼文,改善動態消息的內容等。 而要讓機器能夠辨識出圖片中的內容,就需要有大量的圖片進行機器學習,這時候就可以利用Python網頁爬蟲的技術,蒐集網路上所需的圖片,進而輸入機器中學習。 所以本文想來和讀者分享,如何利用Python網頁爬蟲來自動化下載圖片,其中的開發流程為: 分析 圖片來源網站 爬取圖片來源網址 下載圖片至資料夾中 一、分析 圖片來源網站 本文以 Unsplash 圖片網站為例,其中包含許多種類的高解析度圖片,如下: 假設在搜尋的地方輸入car,就可以找到汽車相關的圖片,如下: 這時候可以觀察網址的地方,最後會加上使用者所輸入的查詢關鍵字,如下圖: 接著,來看一下每張圖片的HTML原始碼結構,如下圖: 可以看到,圖片標籤(img)的樣式類別(class)為「 _2VWD4 _2zEKz 」,Python網頁爬蟲就能夠依據這個 樣式類別(class)來進行定位,取得圖片。 二、爬取圖片來源網址 瞭解所要爬取的 Unsplash 圖片網站結構後,本文以Visual Studio Code,開啟Python網頁爬蟲專案資料夾,在Terminal的視窗中,利用以下的指令安裝所需的套件 : $ pip install requests $ pip install beautifulsoup4 $ pip install lxml 其中Requests套件用來發送請求給網頁,回應的結果就是使用BeautifulSoup套件爬取內容,而lxml則是支援 BeautifulSoup套件的HTML/XML解析器。 安裝完成後,建立app.py檔案,並且引用以下的模組(Module) : from bs4 import BeautifulSoup import requests import os 範例中引用的os模組(Module),提供操作檔案及目錄的方法,可以協助建立資料夾及存放下載的圖片。 為了提供一個互動的介面,讓使用者能夠輸入想要下載的圖片,可以利用Python內建的input()方法(Met