爬蟲第一步? 資料科學好難?
看完爬蟲懶人包,身為 Python 新手的我不禁手癢+心血來潮想了解更多爬蟲的資訊。
以下內容我不會重複太多懶人包的內容(防吉 大家多體諒~ 所以大家如果需要再自己去取用 這邊就不破梗嘍😝
首先,在理解一個新概念之前,最優先要處理的是「定義」
所以~ 回到主題 爬蟲到底是什麼?
網路爬蟲(英語:web crawler),也叫網路蜘蛛(spider),是一種用來自動瀏覽全球資訊網的網路機器人 — 維基百科
以白話文解釋,網路爬蟲就是讓程式模擬人操作電腦的行為,利用自動化大量搜集特定資料的過程。再簡單一點說,就是寫一套程式,讓它幫你自動抓取特定資料
可想而知的是,網路上的資料漫漫且日異更新,要如何得到目標資料,擷取後再做進一步分析就是我們最大的爬蟲課題。所以許多網站才會告訴我們,爬蟲可能有的一些局限,包括錯誤爬取到無用內容、中文字難以檢索處理等等
但是對於和我一樣的新手來說,初探爬蟲並不需要過多的顧慮。把心思專注於:「如何釐清爬蟲的概念」,以作為未來延伸和發揮會是更有建設性的討論~
了解爬蟲第一步:上網查資料
上網用 Google 查資料對於我來說即是人工爬蟲和搜尋引擎爬蟲的綜合體。藉由人工判定主題&最有可能搜尋到結果之關鍵字,輸入 Google 搜尋欄,轉交谷歌幫你在資訊海中爬取你指定的資料。像是 Google 這樣的大型爬蟲器我們稱之為「搜尋引擎」或「通用網路爬蟲」,當然你也有與 Google 不分軒輊的 Yahoo 和對岸的百度
查詢了一段時間後,你可能會和我一樣,看過十幾個 Blog 仍對如何爬蟲懞懞懂懂、似曾相似(如果你懂了就可以直接跳出此篇了😂)。Pyspider、Scrapy、Beautifulsoup、Baiduspider、Selenium 各種不同爬蟲工具/框架名稱把你搞得烏煙瘴氣,壓根不知道從何開始下手。這時,小白我會給你的新手白爛建議會是~不用管
為什麼不用管林林總總的工具? 答案很簡單,你根本還不懂爬蟲哪用得上工具嘛~ 所以在搜尋資料對於爬蟲有初步認知後, …… 👇
你應該做的下一步會是:直接進入練習
我說的直接練習可以是超級無腦小練習,也可以是書上/ 網站上/ 影片上教學的實作,總而言之要先讓自己動起來,有做有進度,有進度才有踏實感
在練習完懶人包的基本實作後,小白個人嘗試了幾個同樣是基本(但概念上相對複雜)的爬蟲練習,像是爬取批踢踢版、新上映電影預告等等。經過一段時間的練習,我的心得是:爬蟲是個應用,因此在 HTML 結構和標籤、資料結構和特性 (json、csv、txt、xml) 這些基本功上需要有一定的打底,爬起來才不會綁手綁腳
另外,必須知道的還有 Requests 模組(功用:請求 HTTP)和 Pandas 這個超強套件(功用:資料處理和分析)的使用,其餘的 Beautifulsoup (功用:解析 HTML 原始檔)等都是附加能讓爬取資料更順利讀取的工具。以上如果都爬的得心應手再去試試 Selenium 大神(功用:以程式碼模擬使用者的上網動作)也不遲,搞不好也更能體會 Selenium 的威力~
By the way, 因為這篇不是教學文所以就先不深入嘍
我們說學問是條不歸路,爬蟲也是。沒有人會越爬越粗淺,只會越爬越深入,越爬越需要克服更多限制與網站設置上的規範。
最後,不管你是因為什麼原因想認識爬蟲(為了數據分析、資料處理、流行趨勢搜集等等),
我都能和你保證只要堅持下去爬蟲會是你的工作&生活好夥伴,使你各方面「不求人」&「奪得頭籌、掌握先機」~
如果你有興趣了解更多 Python 相關主題,觀迎加入程式小白社群,掌握最新資訊~
懶人包資訊也一起放這裡嘍:https://www.facebook.com/happytocoding/posts/1284336445243345
參考資料 Reference: (你可以視為延伸閱讀)
- https://medium.com/@bindaguo/%E7%B6%B2%E8%B7%AF%E7%88%AC%E8%9F%B2%E6%B7%BA%E8%AB%87-afcae0694f13
- https://www.learncodewithmike.com/2020/05/python-selenium-scraper.html
- https://ithelp.ithome.com.tw/articles/10230426
- https://buzzorange.com/techorange/2017/08/04/python-scraping/
- https://www.youtube.com/watch?v=9Z9xKWfNo7k&ab_channel=%E5%BD%AD%E5%BD%AD%E7%9A%84%E8%AA%B2%E7%A8%