欢迎访问!

Office学习网

您现在的位置是:主页 > 网络技术

网络技术

依据百度api搜索关键词获取商家地址和联系方式

发布时间:2026-07-16网络技术评论
通过百度地图API批量搜索某个区域内的特定地点(如酒店),并获取其详细信息,包括名称、地址、经纬度和联系方

region);}public static void searchPlace(String keyword, String.valueOf(pageNum));searchParams.put(page_size, response.code());return null;}return response.body().string();}}private static boolean isResponseSuccessful(JSONObject jsonResponse) {int status = jsonResponse.getIntValue(status);if (status != 0) {log.error(搜索请求失败, lat);log.info(联系方式: {}, String searchParams = new LinkedHashMap();searchParams.put(query, [Java] 纯文本查看 复制代码 import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import lombok.extern.slf4j.Slf4j;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.util.LinkedHashMap;import java.util.Map;import java.util.concurrent.TimeUnit;@Slf4jpublic class BaiduMapSearch {private static final String SEARCH_URL = ;private static final String DETAIL_URL = ;public static String AK = ;private static final OkHttpClient CLIENT = new OkHttpClient.Builder().connectTimeout(10, keyword);searchParams.put(region,。

String params) {StringBuilder urlBuilder = new StringBuilder(baseUrl);urlBuilder.append(?);for (Map.EntryString, jsonResponse.getString(message));return true;}return false;}private static void processPlace(JSONObject place) {String name = place.getString(name);String address = place.getString(address);JSONObject location = place.getJSONObject(location);double lat = location.getDoubleValue(lat);double lng = location.getDoubleValue(lng);String uid = place.getString(uid);String detailUrl = String.format(%s?uid=%soutput=jsonscope=2ak=%s, AK);searchParams.put(page_num, TimeUnit.SECONDS).readTimeout(30, name);log.info(地址: {}, address);log.info(经度: {}, UTF-8)).append();} catch (Exception e) {log.error(URL编码错误: {}, MapString。

错误信息: {}, e.getMessage());}}return urlBuilder.toString().substring(0, region);searchParams.put(output, AK);try {String detailResponseData = executeRequest(detailUrl);if (detailResponseData == null) {return;}JSONObject detailJsonResponse = JSON.parseObject(detailResponseData);if (isResponseSuccessful(detailJsonResponse)) {return;}JSONObject detailResult = detailJsonResponse.getJSONObject(result);String telephone = detailResult.getString(telephone);log.info(名称: {}, json);searchParams.put(ak, telephone);log.info(--------------------------------------------);} catch (IOException e) {log.error(请求报错: {}, TimeUnit.SECONDS).build();public static void main(String[] args) throws UnsupportedEncodingException {String keyword = 新丰小吃;String region = 杭州市萧山区;searchPlace(keyword。

DETAIL_URL, urlBuilder.length() - 1);}private static String executeRequest(String url) throws IOException {Request request = new Request.Builder().url(url).build();try (Response response = CLIENT.newCall(request).execute()) {if (!response.isSuccessful()) {log.error(请求失败, String entry : params.entrySet()) {try {urlBuilder.append(entry.getKey()).append(=).append(URLEncoder.encode(entry.getValue()。

e.getMessage());}}} 。

lng);log.info(纬度: {}, e.getMessage());break;}}}private static String buildUrlWithParams(String baseUrl, searchParams);try {String responseData = executeRequest(searchUrl);JSONObject jsonResponse = JSON.parseObject(responseData);if (isResponseSuccessful(jsonResponse)) {break;}JSONArray results = jsonResponse.getJSONArray(results);if (results == null || results.isEmpty()) {break;}for (int i = 0; i results.size(); i++) {JSONObject place = results.getJSONObject(i);processPlace(place);}pageNum++;} catch (IOException e) {log.error(请求报错: {}, uid。

String region) {int pageNum = 0;while (true) {MapString,状态码: {}, 10);String searchUrl = buildUrlWithParams(SEARCH_URL。

广告位

热心评论

评论列表