2

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

我尝试使用搜索 API 搜索餐厅,但它返回了许多结果。

任何帮助将不胜感激

4

4 回答 4

3

查看页面的来源并搜索 window.RES_ID

于 2018-09-29T14:02:22.023 回答
3

这是一个两步过程:

  1. 通过 /cities API 找出餐厅的城市 ID,在您的情况下,是孟买的城市 ID。这是一个简单的查询搜索。
  2. 在 /search API 中使用上述 API 调用中的城市 ID,例如https://developers.zomato.com/api/v2.1/search?entity_type=city&entity_id=3&q=fantasy%20the%20cake%20shop%20kalyan

这将提供有关餐厅的所有基本信息。

于 2017-05-30T09:10:24.783 回答
2

我遇到了和你描述的一样的问题。这种 Zomato 的 API 方法至少很奇怪。如果您事先不知道 res_id 并且由于 Zomato 会拒绝访问而无法解析,那么几乎不可能获取有关餐厅的任何信息。

这对我有用:

  1. 从 Zomato API Credentials ( 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 ) 搜索餐厅网址。您将越具体,您将获得更好的结果(此 url 由城市指定到布拉格 (ID = 84)和类别每日菜单 (ID = 7)午餐 (ID = 9)。如果有可能做指定城市,类别或美食,它有帮助,但不是必需的。不要忘记在标题中定义 GET 方法。
  3. 循环或过滤 json 结果并搜索所需的 url。您可能需要使用 valueOf() 方法来搜索相同的 url。请注意,您可能需要在所需网址的末尾添加“ ?utm_source=api_basic_user&utm_medium=api&utm_campaign=v2.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. 你有它。不过这可能会更容易。

希望能帮助到你!

于 2019-02-10T21:18:21.710 回答
0

获得 rseraunt 页面的 url 后,您可以简单地查找名为“window.RES_ID”的 javascript 对象属性,并在 api 调用中进一步使用它。

于 2019-05-06T11:28:21.380 回答