📜  使用 Caloriemama API 的食物识别Selenium

📅  最后修改于: 2022-05-13 01:54:29.528000             🧑  作者: Mango

使用 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