爬取调用百度地图API搜索的底层详细数据

# 原创作品,转载请注明出处,谢谢!@杨福星

(http://blog.csdn.net/luckystar92/article/details/####)


1、百度地图开放平台JavaScript API 类参考http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a7b0?qq-pf-to=pcqq.c2c


2、输入待搜索内容(如公司,就可以搜索某个城市所有公司的详细信息),用浏览器打开该.html文件,web页面输出地图底层详细数据

*html文件代码


<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=iIRbecOICGVm1VYkcTQ3kyKLNFR86KfA">
    //防止上面的ak失效请换为你的http://lbsyun.baidu.com/apiconsole/key
    script>
    <title>百度地图搜索数据爬取title>
head>
<body>
<div id="log">div>
<script type="text/javascript">
    // 百度地图API功能
var map = new BMap.Map('map');
var poi = new BMap.Point(106.553428,29.557928); 
var s = [];
var k=0;

var options = {  
    onSearchComplete: function(results){  
        if (local.getStatus() == BMAP_STATUS_SUCCESS){     // 判断状态是否正确
                for (var i = 0; i < results.getCurrentNumPois(); i ++){  
                    //输出tile名称、经度、纬度、地址、联系方式、地图详情网址、标签tag等等 #查看LocalResultPoi可添加更多详细信息          
                    s.push((k+1)+":"+results.getPoi(i).title + ", "+ results.getPoi(i).point.lng+", "+ results.getPoi(i).point.lat+ ", "+ results.getPoi(i).address+ ", "+ results.getPoi(i).phoneNumber+","+results.getPoi(i).url+","+results.getPoi(i).tags);
                    k++;                    
                }         
        }  
        // 判断是否到最后一页,如果是则不再搜索页面输出结果 
        if (results.getPageIndex() < results.getNumPages() - 1) {
            local.gotoPage(results.getPageIndex() + 1);  
        } else{
            document.getElementById("log").innerHTML = s.join("
"
); } } }; var local = new BMap.LocalSearch("重庆市", options); //待输入的搜索的范围 local.setPageCapacity(48); local.search("公司");//待输入的搜索的内容
script> body> html>

3、定义搜索。调用LocalSearch.search方法后只给出第一页的结果,如果要进行后续的查找必须 使用 LocalSearch.gotoPage再次获取,每页结果加载完成都会调用回调函数



*阿星的博客(http://blog.csdn.net/luckystar92)

*此笔记谨供情况相似者参考!

*欢迎交流学习!博主知识浅薄,希望有不对的地方能得到您的指正!谢谢!^_^

**转载请注明出处,谢谢!!!

你可能感兴趣的:(工具)