問題..

我們都有過這樣的經驗:想學做一道新菜,就去Google搜尋食譜。結果卻被各種廣告轟炸,網站也亂七八糟地自動滾動,光是找到成分錶或烹飪說明就讓人頭痛。我一直覺得應該有更簡單的方法,然後我突然想到…為什麼不乾脆「讓它更簡單」呢?

我想用 Python 製作一個工具,它可以抓取食譜網站的資料,並將標題、食材清單和說明清單傳回儲存到電腦的 txt 檔案中。

旅程…

使用的工具:

  • Python (3.13)

  • 請求網頁的請求

  • BeatifulSoup用於 html 解析

  • ARgparse用於 cli 工具的實現

基本程式碼流程:

  1. 從使用者輸入接收 URL

圖片描述

  1. 使用「requests」請求網頁

圖片描述

  1. 使用 Beautiful Soup (bs4) 解析 html 中的「application/ld+json」資料

圖片描述

  1. 從 JSON 載入並提取標題、成分和說明

圖片描述

  1. 將資料儲存到陣列中,並將資料寫入txt文件

圖片描述

挑戰和我學到的東西:

  • 這是我的第一個網頁抓取專案,所以我不太確定如何從不同的網站獲取相同的資料。

  • 起初,我的程式碼非常靜態,使用 bs4 僅使用硬編碼類別名稱從網站取得內容。

  • 我做了一些研究,發現大多數網站都有一個 type='application/ld+json' 的腳本,其中包含標題、成分和說明等元資料。

  • 我從來沒有建立過自己的 Pypi Python 包,起初它只是一個用戶執行的 Python 腳本。

  • 我學會瞭如何打包該工具,以便其他人可以安裝並執行它,並使用 url 作為參數

最終的 Txt 檔:

  • 該包的使用方式如下:

圖片描述

  • 這是最終的txt檔案:

圖片描述

如果您想使用該套件:

  • pip 安裝 recipescraper-cli-tool-er

  • recipescraper(食譜網址)

後續步驟:

  • 我想建立一個網站,人們可以存取並下載文件

  • 我想將資料保存到 pdf 文件而不是 txt 文件

  • 有些網站仍然無法正常工作,所以對於一個快速專案來說,這是可以的,但當我目前的方法不起作用時,我最終希望有其他方法來獲取資料

結論:

這是一個有趣的快速專案,它教會了我網站 JSON 元資料、解析 HTML 結構以及建立 Python 套件。我確實想回到這個專案來改進它,但現在先放眼下一個專案。

如果您對完整程式碼感興趣,請參閱以下 GitHub 儲存庫:

[https://github.com/eduardoreyes007351208/recipeScraper]

感謝您的閱讀,請留下您的想法和創意,希望這能讓烹飪變得更容易一些!


原文出處:https://dev.to/eduardoreyes007351208/building-a-recipe-scraping-tool-in-python-what-i-learned-4na3


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝10   💬6   ❤️11
459
🥈
我愛JS
📝1   💬5   ❤️4
89
🥉
AppleLily
📝1   💬4   ❤️1
47
#4
💬2  
6
#5
💬1  
5
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次