You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在共享主机上用PHP基于地点和搜索词获取Eventbrite活动ID?

解决方案

一、优先用官方API,避开前端动态请求的麻烦

Eventbrite提供了官方Events Search API,可以直接传入搜索词、地点参数获取活动ID,完全适配你的需求:不用分析前端动态请求,也不需要Selenium,共享主机支持的PHP原生工具(curl/file_get_contents)就能实现。

操作步骤:

  1. 去Eventbrite开发者平台申请免费API密钥(个人使用额度足够)
  2. 调用搜索接口,核心参数直接通过URL Query传递:
    • 接口地址:https://www.eventbriteapi.com/v3/events/search/
    • 必填参数:
      • q:搜索关键词(比如"tech conference")
      • location.address:地点(比如"Beijing, CN"或具体街道)
    • 必需请求头:Authorization: Bearer {你的API密钥}

PHP示例代码(共享主机可直接运行):

// 替换为你的API密钥
$api_key = "YOUR_EVENTBRITE_API_KEY";
$search_term = "tech";
$location = "Shanghai";

$url = "https://www.eventbriteapi.com/v3/events/search/?q=" . urlencode($search_term) . "&location.address=" . urlencode($location);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer {$api_key}"
]);

$response = curl_exec($ch);
curl_close($ch);

// 解析响应提取活动ID
$events_data = json_decode($response, true);
if (!empty($events_data['events'])) {
    foreach ($events_data['events'] as $event) {
        echo "活动ID:{$event['id']}\n";
    }
}

二、关于前端AJAX参数的疑问解答

你没找到搜索/地点参数,大概率是漏看了这些位置:

  • POST请求的Request Payload:很多动态网站会把参数放在JSON格式的请求体里(不是Form Data或URL Query),在Chrome DevTools的Network面板选中目标请求后,查看Payload标签就能看到完整的参数JSON。
  • 请求头自定义字段:部分接口会把搜索条件放在请求头的自定义字段中(比如x-search-query),检查Request Headers部分。
  • GraphQL接口:如果Eventbrite用了GraphQL,请求参数会嵌套在query字段的字符串里,需要解析这个字符串才能看到具体条件。

三、共享主机的无Selenium替代方案

如果必须模拟前端请求,按以下步骤操作:

  1. 用Chrome DevTools抓包时,复制目标请求的完整请求头(包括Cookie)、请求方法(POST/GET)、请求体内容
  2. 在PHP中用curl完全复刻这个请求,确保所有头信息和参数与抓包结果一致

内容的提问来源于stack exchange,提问作者Jayy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 12:25:03