iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0
自我挑戰組

菜鳥AI工程師給碩班學弟妹的挑戰系列 第 3

[Day3] 爬蟲收集音檔 - 1

  • 分享至 

  • xImage
  •  

在container內部,有時候需要跑多個程式,但每個程式環境不一樣的話,有以下幾種方法,那我自己如果只是測試某個程式,我會用venv的方式來做,就可以用上一篇教的,開一個新的window,activate venv的環境,如果是一個新的專案,那我會選擇再起一個container做研發,比較不會搞錯。

  1. conda
  2. 再起一個container
  3. python venv
  4. poetry

今天來介紹一個python套件的安裝器,名稱為uv,不僅安裝方式簡單,在下載python package的速度也蠻快的,不過有些比較冷門的package時會有卡住的問題甚至不支援,不過還是推薦大家使用。

安裝透過pip,下載package的方式只是前面多個uv,如果你想下載到本地環境而不是虛擬環境,可以在後面多加system

pip install uv
uv venv
source .venv/bin/activate
uv pip install <package>

# 下載到本地的環境
uv pip install <package> --system

今天另一個主題是爬蟲,我自己認為爬蟲是每個AI工程師都加減要會的技能,畢竟有些資料是公開資料集沒有的,還是要自己去蒐集資料整理過濾,我自己再做一些專案的時候甚至連公開資料集都沒有,所以爬蟲就對我佔了一席之地。

爬蟲有很多種:

  1. BeautifulSoup: 簡單網頁
  2. selenium: 滾動或按鈕等等
  3. scrapy: 簡單網頁 + 滾動或按鈕

基本上scrapy在爬靜態網站效率上蠻好的,如果要用在動態網頁,需要使用一些其他的package來輔助,而且寫的code並不是python,相對起來會比較麻煩。
那BeautifulSoup我自己會拿來爬一些簡單的網站,一些分析找到對應的資料做爬取。
那selenium蠻常會用在登入 按鈕 滾動等等,不過速度上就比較慢一點。

今天主要教的網址是最近我有在爬的: https://www.hakkaradio.org.tw/
如果要爬的話,可以把sleep time設高一點,不要讓別人以為你在攻擊他,而封鎖你的ip,當個螞蟻慢慢爬就好。

我的目標是要爬取音檔,所以先分析音檔在哪裡,然後依序去看網站是如何把音檔都給你的

1. 先隨便進到一個節目,滑鼠點右鍵 > 檢查,可以開啟開發者模式,Elements左邊數兩格的按下去,然後你將滑鼠移到左邊的畫面,可以找到對應的html位置,我們找到他這裡有個a href,也就是下一頁的網址。

https://ithelp.ithome.com.tw/upload/images/20240807/20168446Hzac9FTe38.png

2.到下一頁的網址之後,可以看到一個button,點下去可以發現,底下他就把節目播出來了,代表web已經收到mp3,並且把mp3播放出來,但在play-btn並看不到甚麼資料。

https://ithelp.ithome.com.tw/upload/images/20240807/20168446D6hqjndLbZ.png

3. 此時點選network,然後重新整理頁面後按btn,可以發現跑出了很多東西,當中的某一個就是.mp3,可以看一下他的Request URL,就是這個mp3實際的網址,可以開新頁面,把網址複製進去,就可以有他的mp3囉

https://ithelp.ithome.com.tw/upload/images/20240807/20168446CmIDYVWiPs.png

目前只是分析網站如何把mp3丟給你的,再來我們將透過python寫爬蟲,將這些節目爬下來。
今天先更新到這~~


上一篇
[Day2] 環境架設 - 2
下一篇
[Day4] 爬蟲收集音檔 - 2
系列文
菜鳥AI工程師給碩班學弟妹的挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言