iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
Software Development

想要工作更輕鬆? 跟著我一起用 Power Automate 自動化吧!系列 第 22

Power Automate 也能爬蟲?!利用某購物網站作為題目(下) #僅為教育目的

  • 分享至 

  • xImage
  •  

💡 在本文章你將學到:在 Power Automate 如何實現網頁爬蟲

前言


在本篇我們將會將已經取得的結果將網頁爬蟲透過 Power Automate 執行

內文


  1. 寫入以下程式碼

    • 這部分主要是直接定位到包住個商品項的 Container,還記得我們上一篇寫到以下語法嗎?當我們直接空降到這個 Container 後,就能取得我們的目標了,然而當你 test 之後,你會發現輸出裡包含很多 HTML 語法,因此我們需要再做一件事
    concat(last(split(body('HTTP'),'<div class="RushbuyItemContainer__RushbuyItemContainer___2J94F">')), '<div class="RushbuyItemContainer__RushbuyItemContainer___2J94F">')
    
  2. 建立 Html to text: 將 HTTP 的 HTML 去除,得到純文字

    • 這部分可以協助我們將 HTML 語法通通去除,取得我們最熟悉的語言 → 中、英文
    • 你需要將讓一個步驟的結果丟進 Content 之中
  3. 這是節錄結果,仔細觀察後你會發現其實每筆商品的名稱開頭都已經有個”*” 可以做為錨點,而商品內固定都會有「我要搶」,商品連結則固定在最後方

     * ECCO 北歐經典款男女皮革休閒運動鞋(10月限定-多款可選)
       [https://s.yimg.com/zp/MerchandiseImages/57F25B2DA6-SP-17871469.jpg]
       3 折起
       限時均一價
    
       ECCO 北歐經典款男女皮革休閒運動鞋(10月限定-多款可選)
    
       $2,490$6,980
       已搶 79 %
       我要搶
       [https://tw.buy.yahoo.com/gdsale/gdsale.asp?gdid=11259937]
     * (全網最低價)American Explorer美國探險家 AZ3 20+25吋行李箱 輕量 飛機大輪組 旅行箱 終身保修
       [https://s.yimg.com/zp/MerchandiseImages/5171AA3D13-Gd-11270268.jpg]
       2 折起
       限時超值特惠2件組
    
       (全網最低價)AMERICAN EXPLORER美國探險家 AZ3 20+25吋行李箱 輕量 飛機大輪組 旅行箱 終身保修
    
       $1,699$7,060
       已搶 35 %
       我要搶
       [https://tw.buy.yahoo.com/gdsale/gdsale.asp?gdid=11270268]
    
    
  4. 接下來我們就能透過步驟 3 觀察到的格式取得各項資料,以下提供程式碼參考

    ☝🏿 這邊需要留意的是,由於每人命名的習慣都不同,因此需要將其改成自己的
    ✌🏿 極度建議先將資料剪下後建立一個單純處理字串的 flow 才不會因為用到 HTTP 而多了開銷

    1. 將純文字的內容以 “*” 分割出來,以取得切割好的商品資料

      split(body('Html_to_text'),'*')
      
    2. 由於是資料們,因此我們需要建立 Apply to each,開始數貓咪

    3. 在 Apply to each 寫入以下語法以取得商品名稱

      split(split(items('Apply_to_each'),'*')[0],'[')[0]
      
      * ECCO 北歐經典款男女皮革休閒運動鞋(10月限定-多款可選)\n   [https://s.yimg.com/zp/MerchandiseImages/57F25B2DA6-SP-17871469.jpg]\n   3 折起\n   限時均一價\n   \n   \n   ECCO 北歐經典款男女皮革休閒運動鞋(10月限定-多款可選)\n   \n   $2,490$6,980\n   已搶 79 %\n   我要搶\n   [https://tw.buy.yahoo.com/gdsale/gdsale.asp?gdid=11259937]\n 
      

      解釋語法:我們要先找到目標字串的開頭結果是否有固定格式,從上面的資料你可以看到,當你從第一個 ”[” 分割出來,前面這一串其實就是商品名稱,因此我們要做的就是將分割出來後的字串取出第一個資料,在程式裡,第一筆 =[0]

    4. 取得商品連結

      last(split(split(last(split(last(split(items('Apply_to_each'), '*')), '我要搶')),']')[0],'['))
      

      解釋語法:這邊也是一樣的意思,我們要先取出上下文分隔格式後,取得紀錄,唯一要注意的就是我們要取得的資料順序會比較複雜,需要不斷確認

    5. 取得商品價格

      split(items('Apply_to_each'),'$')[0]
      
    6. 接下來就是將資料存起來即可

    7. 這是在 apply to each 裡各個動作的名稱提供大家對照

      https://ithelp.ithome.com.tw/upload/images/20241008/20168562WhloeaJLId.png

後話


以上就是利用 Power Automate 進行網頁爬蟲的過程,下一篇將會跟大家分享其實我不推薦用 Power Automate 網頁爬蟲的原因

列點摘要 by GenAI

  • 爬蟲的事前準備:
    • 列出必要的準備工作,包括標的網址、期望取得的訊息、訊息呈現方式,以及是否需要定時通知。
  • 標的網址:
    • 使用雅虎購物的秒殺時時樂作為範例,說明如何選擇適合爬取的網站。
  • 期望取得的訊息:
    • 說明希望抓取的資訊,包括商品連結、標題和價格。
  • 訊息呈現方式:
    • 建議將抓取到的資料整理成 Excel 或 CSV 格式,以便後續使用。
  • 觀察網頁結構:
    • 提供使用瀏覽器開發者工具來分析網頁結構的方法,幫助識別需要抓取的資料區塊。
  • 程式碼實作:
    • 詳細步驟和程式碼示範,包括如何定位商品項目、去除 HTML 標籤、分割資料以提取商品名稱、連結和價格等。
    • 提供具體的程式碼範例,幫助讀者理解如何在 Power Automate 中實現這些功能。

上一篇
Power Automate 也能爬蟲?!利用某購物網站作為題目(中) #僅為教育目的
下一篇
探索 Power Automate 的限制
系列文
想要工作更輕鬆? 跟著我一起用 Power Automate 自動化吧!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言