使用 Caloriemama API 的食物识别Selenium
Selenium是一个通过程序控制网络浏览器的强大工具。它适用于所有浏览器,适用于所有主要操作系统,其脚本是用各种语言编写的,例如Python、 Java、C# 等,我们将使用Python。
在本文中,我们将了解如何使用selenium自动化 Caloriemama 网站。我们将在caloriemama
API 网站上发布一张食物图片,并返回它在该网站上显示的结果。
在进入代码之前,我们需要为Python安装selenium 。
pip install selenium
网络驱动程序
Selenium需要一个 Web 驱动程序来与所选浏览器交互。Web 驱动程序是一个与 Web 浏览器交互的包。它通过对所有人都通用的有线协议与网络浏览器或远程网络服务器进行交互。您可以签出并安装您选择的浏览器的网络驱动程序。
Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads
Firefox: https://github.com/mozilla/geckodriver/releases
Safari: https://webkit.org/blog/6900/webdriver-support-in-safari-10/
需要的模块
- selenium:用于自动化网络浏览器
- time:用于使用 sleep函数,因为selenium仅在加载页面的所有元素时才起作用。
我们将发送食物的图片并以文本形式获取识别的食物结果。让我们考虑一下食物的形象是这样的——
# food recognition using caloriemama API # selenium example from selenium import webdriver import time # create the variable for webdriver browser = webdriver.Firefox(executable_path='/path/to/geckodriver') # it will open browser and # search for the below URL browser.get('https://www.caloriemama.ai/api') # find class name 'file-upload' upload = browser.find_element_by_class_name('file-upload') # enter your image file # location here & send image upload.send_keys("/path/to/food.jpeg") time.sleep(5) # return the value by class name get = browser.find_element_by_class_name('group-name') print(get.text) # on the website, it will show many # results depend on the accuracy # first result is high accuracy one # if need all the result put it in # loop like below and change # 'find_element_by_class_name' # to 'find_elements_by_class_name' # for got in get: # print(got.text, "\n") # break
输出:
Pizza