如何使用餐厅链接以获取Zomato餐厅ID?

问题描述 投票:1回答:4

我想在Zomato餐厅的详细信息。我有它的链接作为输入(https://www.zomato.com/mumbai/fantasy-the-cake-shop-kalyan?utm_source=api_basic_user&utm_medium=api&utm_campaign=v2.1)。通过浏览Zomato的API文档,我没有找到一种方式来获得它。

我试图寻找使用搜索API的餐厅,但它返回了许多成果。

任何帮助将不胜感激

zomato-api
4个回答
2
投票

像你描述我有同样的问题。这Zomato的API方法是至少奇怪。这几乎immposible以获取有关餐馆的任何信息,如果你不知道RES_ID提前,这就是无法解析,因为Zomato将拒绝访问。

这为我工作:

  1. 获得Zomato API证书用户密钥(https://developers.zomato.com/api
  2. 通过API(https://developers.zomato.com/api/v2.1/search?entity_id=84&entity_type=city&q=RESTAURANT_URL&category=7%2C9)搜索餐厅网址。更具体的,你会是更好的结果,你会得到(此网址由城市指定布拉格(ID = 84)和类别每日菜单(ID = 7),午餐(ID = 9),如果有可能做指定城市,类别或菜肴,它可以帮助,但should't是必要的。不要忘了在标题定义GET方法。
  3. 环路或过滤器通过JSON结果和搜索想要的网址。您可能需要使用方法的valueOf()来搜索相同的URL。要小心,你可能需要添加“?utm_source = api_basic_user&utm_medium = API&utm_campaign = 2.1”在你想要的网址,因此具有相同的格式的结束。检查通过Zomato API文档页面。
for (i in body.restaurants) {
    var url_wanted = restaurant_url + '?utm_source=api_basic_user&utm_medium=api&utm_campaign=v2.1'
    var url_in_json = body.restaurants[i].restaurant.url;
    if (url_wanted.valueOf() == url_in_json.valueOf()) {
        var restaurant_id = body.restaurants[i].restaurant.id;
    }
    console.log('Voala! We have res_id:' + restaurant_id);
}
  1. 你有它。这可能是更容易不过。

希望能帮助到你!


1
投票

这是一个过程分为两个步骤:

  1. 了解餐厅的城市ID,你的情况,孟买的城市ID通过/城市API。这是一个简单的查询搜索。
  2. 从上面的API调用在/搜索API一样,https://developers.zomato.com/api/v2.1/search?entity_type=city&entity_id=3&q=fantasy%20the%20cake%20shop%20kalyan使用城市标识

这将使所有关于餐厅的基本信息。


0
投票

查看网页的源代码和搜索window.RES_ID


0
投票

一旦你有rseraunt的网页的网址,你可以简单地去寻找一个名为“window.RES_ID” JavaScript对象的属性,并进一步在API调用中使用它。

© www.soinside.com 2019 - 2024. All rights reserved.