我們都有過這樣的經驗:想學做一道新菜,就去Google搜尋食譜。結果卻被各種廣告轟炸,網站也亂七八糟地自動滾動,光是找到成分錶或烹飪說明就讓人頭痛。我一直覺得應該有更簡單的方法,然後我突然想到…為什麼不乾脆「讓它更簡單」呢?
我想用 Python 製作一個工具,它可以抓取食譜網站的資料,並將標題、食材清單和說明清單傳回儲存到電腦的 txt 檔案中。
Python (3.13)
請求網頁的請求
BeatifulSoup用於 html 解析
ARgparse用於 cli 工具的實現
基本程式碼流程:
這是我的第一個網頁抓取專案,所以我不太確定如何從不同的網站獲取相同的資料。
起初,我的程式碼非常靜態,使用 bs4 僅使用硬編碼類別名稱從網站取得內容。
我做了一些研究,發現大多數網站都有一個 type='application/ld+json' 的腳本,其中包含標題、成分和說明等元資料。
我從來沒有建立過自己的 Pypi Python 包,起初它只是一個用戶執行的 Python 腳本。
我學會瞭如何打包該工具,以便其他人可以安裝並執行它,並使用 url 作為參數
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