2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
如何在2026年抓取DoorDash、优步外卖和Grubhub的菜单数据
食品配送平台属于较难抓取的目标之一——它们采用激进的反机器人措施,要求提供位置参数,并且各平台的数据结构各不相同。以下是实际可行的方法,用于提取菜单数据、餐厅列表和价格信息。
DoorDash:菜单数据提取
DoorDash将菜单数据以JSON格式嵌入到页面的服务端渲染HTML中。这是最干净的方法——无需API身份验证:
import requests, re, json
from curl_cffi import requests as cf_requests
def scrape_doordash_menu(store_url: str) -> dict:
"""
从DoorDash餐厅页面提取菜单数据。
URL格式:https://www.doordash.com/store/restaurant-name-city-12345/
"""
session = cf_requests.Session()
headers = {
"User-Agent": "Mozilla/5.0(Macintosh;Intel Mac OS X 10_15_7)AppleWebKit/537.36(KHTML,如Gecko)Chrome/124.0.0.0 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.9",
}
response = session.get(store_url, impersonate="chrome124", headers=headers)
if response.status_code != 200:
return {}
html = response.text
# DoorDash将数据嵌入到id为"__NEXT_DATA__"的script标签中(Next.js框架)
# 其中包含完整的菜单结构
pattern = r'
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。