Python Webscraping API动态参数值

Python Webscraping API动态参数值,python,selenium,web-scraping,python-requests,Python,Selenium,Web Scraping,Python Requests,我正在尝试按位置搜索餐厅,并获取它们的菜单、地址等。当我手动打开该网站时,我看到数据可通过2个请求获得。1用于位置搜索,第二个用于menuId。由于api url将纬度和经度作为搜索的输入,因此我添加了一段代码。但是,我不知道如何处理trackingId部分。如果后续搜索可能的话,如何获取此信息。此外,我认为没有办法知道哪家餐厅有哪个menuID,这也是api url中需要的。那么,单独使用请求是否可以实现这一点?我需要完全使用其他东西还是组合使用?。非常感谢 import time impo

我正在尝试按位置搜索餐厅,并获取它们的菜单、地址等。当我手动打开该网站时,我看到数据可通过2个请求获得。1用于位置搜索,第二个用于
menuId
。由于api url将纬度和经度作为搜索的输入,因此我添加了一段代码。但是,我不知道如何处理
trackingId
部分。如果后续搜索可能的话,如何获取此信息。此外,我认为没有办法知道哪家餐厅有哪个
menuID
,这也是api url中需要的。那么,单独使用
请求
是否可以实现这一点?我需要完全使用其他东西还是组合使用?。非常感谢

import time

import requests
import urllib.parse

print("Welcome to Restaurant Search")
time.sleep(1)
headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'}
address = input("Enter the City name :")
lat_long_url = 'https://nominatim.openstreetmap.org/search/' + urllib.parse.quote(address) +'?format=json'
lat_long = requests.get(url=lat_long_url, headers=headers).json()
time.sleep(3)
name = input("Enter the name of the Restaurant :")
search_url = f'https://www.swiggy.com/dapi/restaurants/search/v2_2?lat={lat_long[0]["lat"]}&lng={lat_long[0]["long"]}&trackingId=ebaedb8a-d86d-2e0b-69c8-4a3643e7a397&str={name}&sld=false&non_partner_search=false'
rest_url = f'https://www.swiggy.com/dapi/menu/v4/full?lat={lat_long[0]["lat"]}&lng={lat_long[0]["lon"]}&menuId=41100'(This)
n = False

info = requests.get(search_url).json()
print(info)
restaurant = info["data"]['restaurants']
for v in restaurant:
    restaurant_name = [v['restaurants']]
    for v in restaurant_name:

        for k in v:
            if not n:
                print("Restaurant Name: {}".format(k['name']))
                print("City: {}".format(k['city']))
                print("Area: {}".format(k['area']))
                print("Ratings: {}".format(k['avgRating']))
                n = True
Edit我用相同的
trackingID
尝试了它。到目前为止,它仍然有效,不知道将来是否会成为一个问题。但是,仍然无法找出
menuID
部分

信息。当我向
https://www.swiggy.com/dapi/menu/v4/full?
它说它需要一个
slug
menuId
。最初的回答是“slug like so.”“slug”:{“restaurant”:“pebble street new friends colony lajpat nagar”,“city”:“delhi”}。所以,我想我会试着看看如何把这个放在请求中。现在还不知道怎么做