通过百度API爬取地点的信息时,返回的结果是在网页上显示的信息,这些信息的语法是json,在还没学会爬虫的时候,只能通过json转excel工具,把这些数据转化成excel,这样就可以进一步从excel中导入arcgis中(具体见另一篇博文:arcgis导入坐标点)

参考文献:http://www.voidcn.com/article/p-pfudugqn-bpt.html

大神做的网站:http://j2e.kpoda.com/

这个网站有两种方式,一种是直接把你的json代码粘到这里,另一种是选择一个txt文件,里面也是一样的代码。

代码的格式一定要严格按照模板(也就是灰色的字)来搞,要不然就会报错。举个例子。

然后我从百度api搞到的数据是长这样的:(查询乌鲁木齐清真寺)

{"status":0,"message":"ok","total":188,"results":[{"name":"铁厂沟清真大寺","location":{"lat":43.938762,"lng":87.806468},"address":"139县道附近","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"米东区","detail":1,"uid":"480b24d06c047c8f9dec2b93"},{"name":"八户地清真大寺-南门","location":{"lat":43.886886,"lng":87.562572},"address":"新疆维吾尔自治区乌鲁木齐市新市区河北东路1041附近","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"新市区","detail":1,"uid":"ce1b3556664ec0890c0a70f6"},{"name":"河州清真大寺-西门","location":{"lat":43.795109,"lng":87.627103},"address":"建中路与永和正巷交叉口东50米","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"天山区","detail":1,"uid":"3bb47e0ccacbdefd16c90552"},{"name":"上屯清真大寺-东南门","location":{"lat":43.979309,"lng":87.338247},"address":"新疆维吾尔自治区乌鲁木齐市头屯河区上屯清真大寺附近","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"头屯河区","detail":1,"uid":"f46af63be9ca3b0e4bfd3fbb"},{"name":"仓房沟清真大寺-东南门","location":{"lat":43.760034,"lng":87.587941},"address":"水泥厂街南四巷15","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"沙依巴克区","detail":1,"uid":"793b456b2e5487b28bfc064b"},{"name":"老满城西关清真大寺-东北门","location":{"lat":43.81897,"lng":87.567822},"address":"乌鲁木齐市沙依巴克区西环南大路4781","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"沙依巴克区","street_id":"f189db5d04d32f9fda2f2868","detail":1,"uid":"f189db5d04d32f9fda2f2868"},{"name":"柴窝堡清真大寺-西南门","location":{"lat":43.54532,"lng":87.9515},"address":"312国道东50米","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"达坂城区","detail":1,"uid":"272a95039bc51a673310af60"},{"name":"米泉电大工作站-西门","location":{"lat":43.977149,"lng":87.664862},"address":"乌鲁木齐市米东区三道坝南路218号附近","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"米东区","street_id":"9f2ed16a6eec6686d5b74e93","detail":1,"uid":"9f2ed16a6eec6686d5b74e93"}]
}

按照示例 ,就得把前面多余的都删掉,把 "["写到和下面的“{”一行,还要把最后的“}”删掉!

也就是这样的:

[{"name":"铁厂沟清真大寺","location":{"lat":43.938762,"lng":87.806468},"address":"139县道附近","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"米东区","detail":1,"uid":"480b24d06c047c8f9dec2b93"},{"name":"八户地清真大寺-南门","location":{"lat":43.886886,"lng":87.562572},"address":"新疆维吾尔自治区乌鲁木齐市新市区河北东路1041附近","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"新市区","detail":1,"uid":"ce1b3556664ec0890c0a70f6"},{"name":"河州清真大寺-西门","location":{"lat":43.795109,"lng":87.627103},"address":"建中路与永和正巷交叉口东50米","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"天山区","detail":1,"uid":"3bb47e0ccacbdefd16c90552"},{"name":"上屯清真大寺-东南门","location":{"lat":43.979309,"lng":87.338247},"address":"新疆维吾尔自治区乌鲁木齐市头屯河区上屯清真大寺附近","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"头屯河区","detail":1,"uid":"f46af63be9ca3b0e4bfd3fbb"},{"name":"仓房沟清真大寺-东南门","location":{"lat":43.760034,"lng":87.587941},"address":"水泥厂街南四巷15","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"沙依巴克区","detail":1,"uid":"793b456b2e5487b28bfc064b"},{"name":"老满城西关清真大寺-东北门","location":{"lat":43.81897,"lng":87.567822},"address":"乌鲁木齐市沙依巴克区西环南大路4781","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"沙依巴克区","street_id":"f189db5d04d32f9fda2f2868","detail":1,"uid":"f189db5d04d32f9fda2f2868"},{"name":"柴窝堡清真大寺-西南门","location":{"lat":43.54532,"lng":87.9515},"address":"312国道东50米","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"达坂城区","detail":1,"uid":"272a95039bc51a673310af60"},{"name":"米泉电大工作站-西门","location":{"lat":43.977149,"lng":87.664862},"address":"乌鲁木齐市米东区三道坝南路218号附近","province":"新疆维吾尔自治区","city":"乌鲁木齐市","area":"米东区","street_id":"9f2ed16a6eec6686d5b74e93","detail":1,"uid":"9f2ed16a6eec6686d5b74e93"}]

然后我是把每一页的json都从百度api返回的json结果中粘出来,挨个在notpad++里建立文件,最后批量转换

可以先试试自己的格式改对没有,把改好的一页粘贴到对话框,看是否能转换,做对了再批量生产。

然后粘贴一下这个网站的源码,供以后学习使用。(万一哪天大神的网站崩了我也不会凉)

//主要代码
function exportJson2Excel(json, type) {//TODO 记录导出操作日志var log = {"type": "json2excel"};
//titletry {var title = new Set();for (var i = 0; i < json.length; i++) {var r = json[i];getProFromObject(r, title);}console.log("title", title);var data = [];for (var i = 0; i < json.length; i++) {var r = json[i];var dataRow = [];title.forEach(function (t) {var d1 = r[t];var ss = t.split(".");if (ss.length >= 2) {var tmp = r;for (var i = 0; i < ss.length; i++) {var s = ss[i];tmp = tmp[s];if (!tmp) {break;}}d1 = tmp;}if (d1) {if (typeof d1 == 'object') {dataRow.push(JSON.stringify(d1));} else {dataRow.push(d1);}} else {dataRow.push("");}});data.push(dataRow);}console.log("data", data);jsonToExcelConvertor(data, 'Report', Array.from(title), type);} catch (err) {console.error(err);alert("导出报错:" + err.stack);log.error = err.stack;log.json =  json;} finally {OplogsService.save(log).$promise.then(function (res) {console.log(res);}).catch(function (error) {console.log(error);alert("系统错误:" + JSON.stringify(error));});}}//getProFromObject方法用来获取json对象的属性,其对应excel的列。其中用到了递归。function getProFromObject(r, title, parentsPros) {for (var rp in r) {if (parentsPros) {title.add(parentsPros + "." + rp);} else {title.add(rp);}if (typeof r[rp] == 'object') {if (parentsPros) {getProFromObject(r[rp], title, parentsPros + "." + rp);} else {getProFromObject(r[rp], title, rp);}}}}//jsonToExcelConvertor方法用于把整理好的数据,转换为DataURI,输出excel。function jsonToExcelConvertor(JSONData, FileName, ShowLabel, type) {type = type ? type : "xls";var application = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";if (type == "xls") {application = "application/vnd.ms-excel";}// 先转化jsonvar arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;var excel = '<table>';// 设置表头var rr = '<tr>';for (var j = 0, l = ShowLabel.length; j < l; j++) {rr += '<td>' + ShowLabel[j] + '</td>';}// 换行excel += rr + '</tr>';// 设置数据for (var i = 0; i < arrData.length; i++) {var row = '<tr>';for (var index = 0; index < arrData[i].length; index++) {var value = arrData[i][index] === '.' ? '' : arrData[i][index];row += '<td>' + value + '</td>';}excel += row + '</tr>';}excel += '</table>';var excelFile = '<html xmlns:o=\'urn:schemas-microsoft-com:office:office\' xmlns:x=\'urn:schemas-microsoft-com:office:excel\' xmlns=\'http://www.w3.org/TR/REC-html40\'>';excelFile += '<meta http-equiv="content-type" content="' + application + '; charset=UTF-8">';excelFile += '<meta http-equiv="content-type" content="' + application;excelFile += '; charset=UTF-8">';excelFile += '<head>';excelFile += '<!--[if gte mso 9]>';excelFile += '<xml>';excelFile += '<x:ExcelWorkbook>';excelFile += '<x:ExcelWorksheets>';excelFile += '<x:ExcelWorksheet>';excelFile += '<x:Name>';excelFile += '{worksheet}';excelFile += '</x:Name>';excelFile += '<x:WorksheetOptions>';excelFile += '<x:DisplayGridlines/>';excelFile += '</x:WorksheetOptions>';excelFile += '</x:ExcelWorksheet>';excelFile += '</x:ExcelWorksheets>';excelFile += '</x:ExcelWorkbook>';excelFile += '</xml>';excelFile += '<![endif]-->';excelFile += '</head>';excelFile += '<body>';excelFile += excel;excelFile += '</body>';excelFile += '</html>';var uri = 'data:' + application + ';charset=utf-8,' + encodeURIComponent(excelFile);var link = document.createElement('a');link.href = uri;//TODO Cannot set property style of #<HTMLElement> which has only a getter// link.style = 'visibility:hidden';$(link).css("visibility", "hidden");// link.download = FileName + '.'+type;$(link).attr("download", FileName + '.' + type);document.body.appendChild(link);link.click();document.body.removeChild(link);}

百度api爬虫(2)json转excel表格相关推荐

  1. java的json导出excel_利用json生成excel表格

    起因: 之前利用反射生成excel导出,这个组件本来挺好用的,结果,坑爹的本地研发没有问题,生产环境却有问题.不知道什么原因直接导致服务重启,还重新加载类,直接导致jvm的永久区内存溢出. 异常: j ...

  2. py爬虫数据到本地Excel表格

    效果图 需要爬取的网页和内容 程序目的:根据公众号文章中的内容,爬取文章的标题.发布时间.责任人署名.文章链接,将这个python程序打包成为exe文件,在运行exe文件时可以爬取html的内容并保存 ...

  3. 个人永久性免费-Excel催化剂功能第90波-xml与json数据结构转换表格结构

    在网络时代,大量的数据交互以xml和json格式提供,特别是系统间的数据交互和网络WebAPI.WebService接口的数据提供,都是通过结构化的xml或json提供给其他应用调用返回数据. 若能提 ...

  4. 爬取去哪儿网酒店信息,再利用百度API将酒店地址的经纬度爬取!

    Python3 的 selenium库可以模拟打开页面,获得加载完成的页面信息,一些基本用法,请自行度娘,就不再赘述了 1.将某城市的所有酒店链接爬取下来. 先打开两个酒店页面 ** https:// ...

  5. 百度android api坐标转地址,百度API从经纬度坐标到地址的转换服务

    /// /// 百度API从经纬度坐标到地址的转换服务 /// /// /// /// public string GetAddress(string lng, string lat) { strin ...

  6. Python爬虫项目:爬取JSON数据存储Excel表格与存储图片

    随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战.搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Googl ...

  7. 全球地区资料json 含中英文 经纬度_爬虫实战(三)使用百度API获取经纬度/地址...

    点击上方"蓝字"关注我们百度API获取经纬度/地址Mar 28, 2020 本期介绍给定地址/经纬度,使用百度API来获取经纬度/地址. 本文约3k字,预计阅读18分钟. 本次是第 ...

  8. python爬取天眼查存入excel表格_爬虫案例1——爬取新乡一中官网2018届高考录取名单...

    有一种非常常见并且相对简单的网络爬虫,工作流程大概是这样的: 访问目标网页 提取目标网页内表格信息 写入excel文件并保存 初次实践,我决定尝试写一个这样的爬虫.经过一番构思,我准备把爬取新乡一中官 ...

  9. python爬虫接口_python爬虫之百度API调用方法

    调用百度API获取经纬度信息. import requests import json address = input('请输入地点:') par = {'address': address, 'ke ...

最新文章

  1. PHP autoload机制详解
  2. Pacemaker+Corosync PostgreSQL流复制HA的部署(pha4pgsql)
  3. 在Chrome开发者工具里观察到的SAP Spartacus productCodes
  4. 什么笔记本电脑好用_苹果笔记本好用吗?苹果笔记本怎么样?
  5. 收藏 | 综述:目标检测二十年
  6. 如何显示最近过生日的记录
  7. 【java】linux命令获取百度的主页-模拟Socket三次握手
  8. react加水印_给网页增加水印的方法,react
  9. eclipse启动重启springboot项目后修改的代码没生效_SpringBoot系列教程13--SpringBoot开发利刃之热部署原理及最优实践...
  10. Oracle的卸载过程步骤
  11. 5G组网方案和频谱规划
  12. C++11: vector 初始化赋值
  13. 安科瑞DTSD/ADL400通讯协议说明-Susie 周
  14. ipv6测试工具-支持ipv6的web压力测试工具curl-load
  15. Windows Server 2008 简体中文 正式版 下载
  16. 织梦后台登录页面显示空白怎么解决
  17. 博达交换机S2528PB常用配置命令
  18. 算法的时间复杂度取决于:
  19. 小程序中的页面导航(页面跳转)
  20. 腾讯云带宽价格表(包年包月/按量计费/流量价格)

热门文章

  1. java 视频 解码_关于视频解码总结--JavaCV
  2. 使用 YUI Compressor 批量压缩JS/CSS
  3. Linux 多线程开发(附有案例代码)
  4. Ctrl组合快捷键大全
  5. Java项目合集—整整20套精品项目(附源码)
  6. Code::Blocks环境下导入WS2_32.lib文件
  7. 交换机的相关配置---设置终端登录密码和恢复出厂设置的实验操作
  8. 51单片机学习日记 | LCD1602黑块和闪烁问题的处理
  9. 关于绿盾解密功能java代码。
  10. 调用农行融资申请的接口 代码梳理