转载:http://www.site-digger.com/html/articles/20111110/18.html

发布时间:2011-11-10

大众点评的地图位置很精确,但从HTML源码中却找不到坐标(经纬度)信息。

利用地址加载地图往往有比较大的偏差,从这一点上分析它肯定是利用的坐标(经纬度)信息。

分析JS发现原来它是把坐标(经纬度)信息进行了转换(防采集),就是HTML中的poi参数。

例如,http://www.dianping.com/shop/550409 如下图所示poi参数。

在JS中可以找到解码该参数的方法如下:
function decode(C) {        var digi=16;        var add= 10;        var plus=7;        var cha=36;        var I = -1;        var H = 0;        var B = "";        var J = C.length;        var G = C.charCodeAt(J - 1);        C = C.substring(0, J - 1);        J--;        for (var E = 0; E < J; E++) {            var D = parseInt(C.charAt(E), cha) - add;            if (D >= add) {                D = D - plus            }            B += (D).toString(cha);            if (D > H) {                I = E;                H = D            }        }        var A = parseInt(B.substring(0, I), digi);        var F = parseInt(B.substring(I + 1), digi);        var L = (A + F - parseInt(G)) / 2;        var K = (F - L) / 100000;        L /= 100000;        return {            lat: K,            lng: L        }}document.write(decode('HHDFJGZVVIHIJG').lat+','+decode('HHDFJGZVVIHIJG').lng);<br>

鲲鹏数据的技术人员给出该decode函数的Python实现如下:

# coding: utf-8# 解析大众点评地图坐标参数(POI)# 鲲鹏数据 http://www.site-digger.comdef to_base36(value):    """将10进制整数转换为36进制字符串    """    if not isinstance(value, int):        raise TypeError("expected int, got %s: %r" % (value.__class__.__name__, value))    if value == 0:        return "0"    if value < 0:        sign = "-"        value = -value    else:        sign = ""    result = []    while value:        value, mod = divmod(value, 36)        result.append("0123456789abcdefghijklmnopqrstuvwxyz"[mod])    return sign + "".join(reversed(result))def decode(C):    """解析大众点评POI参数    """    digi = 16    add = 10    plus = 7    cha = 36    I = -1    H = 0    B = ''    J = len(C)    G = ord(C[-1])    C = C[:-1]    J -= 1        for E in range(J):        D = int(C[E], cha) - add        if D >= add:            D = D - plus        B += to_base36(D)        if D > H:            I = E            H = D    A = int(B[:I], digi)    F = int(B[I+1:], digi)    L = (A + F - int(G)) / 2    K = float(F - L) / 100000    L = float(L) / 100000    return {'lat': K, 'lng': L}if __name__ == '__main__':    print decode('IBGITBZUHGDVEM') 

效果演示:在本文的最开始放置了一个查询表单,输入某个商铺的URL点击查询后即可查看到该商铺的坐标(经纬度)信息。

特别说明:该文章为鲲鹏数据原创文章 ,你除了可以发表评论外,还可以转载到你的网站或博客,但是请保留源地址,谢谢!!(尊重他人劳动,你我共同努力)

如何抓取(采集)大众点评网的坐标(经纬度)信息相关推荐

  1. jsoup实战之抓取大众点评网区域省份城市信息

    需求:从大众点评网抓取 所有区域,省份,城市信息 所使用技术:manve+jsoup.1.7.3+httpclient.4.3.3 pom.xml <project xmlns="ht ...

  2. 大众点评坐标抓取php,如何抓取(采集)大众点评网的坐标(经纬度)信息

    发布时间:2011-11-10 大众点评的地图位置很精确,但从HTML源码中却找不到坐标(经纬度)信息. 利用地址加载地图往往有比较大的偏差,从这一点上分析它肯定是利用的坐标(经纬度)信息. 分析JS ...

  3. Python3 实现大众点评网酒店信息和酒店评论的网页爬取

    **作者:**Mr. Ceong 链接:http://blog.csdn.net/leigaiceong/article/details/53188454 Python3 实现大众点评网酒店信息和酒店 ...

  4. 爬取了大众点评和去哪儿网上4312家长沙美食,看看什么值得吃?|凹凸数读

    原文链接:五一去长沙,到了吃点啥?|数据会说话Vol.01-凹凸数读 爬虫和源数据在文末! 我们在去哪儿网爬取了五一广场周围5公里之内2000家美食的经纬度地理坐标,利用echarts与百度地图API ...

  5. python数据分析可视化大众点评网餐厅口碑包含数据

    部分代码 import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams["font. ...

  6. python爬虫实战一|大众点评网

    PS:如果不懂的可以看我的上一篇文章快速入门Python爬虫 阶段 类型 问题 需要做到 1 请求 网页数据在哪里? 发现网址url规律 2 请求 如何获取网页数据 先尝试使用requests成功访问 ...

  7. 大众点评网2016校招试题选录

    大众点评网的校招题还真有特点,分四部分,第一部分是行测的数字规律类题目,第二部分是行测的图形规律题,第三部分是C++.Java的基础选择题,第四部分是四个编程题. 题目都有时间限制,第一二部分皆是普通 ...

  8. 全国城市空气质量实时发布平台数据抓取采集获取

    全国城市空气质量实时发布平台(https://air.cnemc.cn:18007/   原http://106.37.208.233:20035/)数据抓取采集获取,数据处理方法 import or ...

  9. 大众点评网谈成功秘诀:明白用户感兴趣、需要和寻找的是什么

    如今的互联网用户,大多都能够熟练地使用搜索引擎查找到自己需要的信息,"浏览.输入.搜索"早已成为最普遍的上网场景.但是,并不是所有的互联网企业都懂得怎样通过掌握"场景&q ...

  10. 大众点评网平台架构组高级工程师 hadoop 应用案例

    大数据 hadoop 应用案例 大众点评 =========================================================== 大众点评网从2011年中开始使用Had ...

最新文章

  1. wcf ria中主从表绑定treeview
  2. 2.5 数据不匹配时,偏差和方差的分析-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  3. LUA使用虚函数与使用回调函数
  4. java中同步_在Java中的方法同步和语句同步(块同步) - Break易站
  5. python计算两点间距离_python 计算方位角实例(根据两点的坐标计算)
  6. elementui 嵌套表单验证_elementUI 表单嵌套表格验证,日期选择器联动限制等写法
  7. iOS swift语言生成条形码,可一次性生成多个!并带文字
  8. pt-osc全解pt-online-schema-change
  9. 各大杀软免费救急光盘合集——这个可以收藏备用了
  10. 创建font_年底干货来了!图案创建、字体、图库、UI套件常见工具大合集!
  11. 关于fragment保存变量的问题
  12. BigGAN论文解读
  13. windows上用virtualbox运行mac虚拟机时怎样使用usb
  14. 计算ndvi值需要的数据_利用TM计算NDVI问题
  15. 美国贝勒大学计算机科学专业怎么样,贝勒大学专业排名一览(含历年专业排名信息,USNEWS美国大学排名版)...
  16. Java比较两个对象是否相同并获取值不同的属性
  17. c语言中用age表示年龄的词语,age和aged表示年龄的区别
  18. (学习笔记)手把手教你学51单片机:C语言基础以及流水灯的实现
  19. 西安地铁行业投融资状况与发展策略建议报告2022版
  20. Unity性能优化---音频

热门文章

  1. Springboot+Vue实现物业管理系统
  2. Spring揭秘 读书笔记
  3. 企业到底需要何种数据分析挖掘工具?
  4. 咸鱼笔记-编程语言优缺点
  5. 东北大学linux程序设计考试,Linux认证考试试题及答案
  6. 人脸识别管理系统php源码,完整的人脸识别系统源代码
  7. 刹车盘的噪音测试软件,某车型盘式制动器尖叫噪声分析及改进
  8. easyui 全部图标
  9. Java面试题之分布式事务篇
  10. 智能商业20讲--曾明.听后感悟