python2.7进行爬虫POI代码(划分小网格算法)
时间:2022-05-04
本文章向大家介绍python2.7进行爬虫POI代码(划分小网格算法),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
查询许久,最终选择一个,之前一直py3.6不成功,换了2.7就好多了。如果有重复去下重即可。
这里面非常重要的基类对象的init()方法与超类方法,将在下面进行记录。
# -*- coding:utf-8 -*-
import json
import urllib2
import sys
import imp
import time
#显示当前系统编码
print(sys.getdefaultencoding())
#修改编码:py3.6无法解析百度地图API,如有人解决
imp.reload(sys)
sys.setdefaultencoding('utf-8')
#对百度api进行解析
class BaiDuPOI(object):
def __init__(self,itemy,loc):
self.itemy = itemy
self.loc = loc
#对页数进行循环提取
def urls(self):
api_key = baidu_api
urls = []
for pages in range(0,20):
url = 'http://api.map.baidu.com/place/v2/search?query=' 5A&景区 '&bounds=' + self.loc +'&page_size=20&page_num=' + str(pages) + '&output=json&ak=' + api_key
urls.append(url)
return urls
#获取json数据
def baidu_search(self):
json_sel = ["name,lat,lng"]
for url in self.urls():
json_obj = urllib2.urlopen(url)
data = json.load(json_obj)
for item in data['results']:
jname = item["name"]
jlat = item["location"]["lat"]
jlng = item["location"]["lng"]
js_sel = jname +',' + str(jlat) + ',' + str(jlng)
json_sel.append(js_sel)
return json_sel
#对数据进行关键词提取与写入
if __name__ == '__main__':
baidu_api = '133d5d0ef4fcc60f7ff63a76f5b538ac' #这里填入你的百度API
print "开始爬数据,请稍等..."
start_time = time.time()
locs_to_use = ['39.0,116.0,39.05,116.05']
for loc_to_use in locs_to_use:
par = BaiDuPOI(u'景区',loc_to_use) #请修改这里的参数
a = par.baidu_search()
doc = open('baidu_csv.csv','w')
for ax in a:
doc.write(ax)
doc.write('n')
doc.close
end_time = time.time()
print "数据爬取完毕,用时%.2f秒" % (end_time - start_time)
参考文献:http://www.workloadup.com/baidupoi.html
- 如何使用Metasploit对安卓手机进行控制
- 关于MySQL DNS解析探究之二:unauthenticated user
- Thrift Direct Memory OOM问题解决方法
- Mapreduce程序中reduce的Iterable参数迭代出是同一个对象
- 内部威胁那些事儿(二):系统破坏
- 从用户行为去理解内容-item2vec及其应用
- Dubbo与Zookeeper、SpringMVC整合和使用(入门级)
- Websocket HandShake Sec-WebSocket-Accept 生成策略
- 关于JVM CPU资源占用过高的问题排查
- ActiveMQ简单介绍以及安装
- Java Process destroy方法kill进程,返回码测试
- 百度人脸识别API Java调用
- Java Socket Timeout总结
- 求一个数组中子数组的最大和算法(Java实现)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- c++奇淫技巧之完美转发
- 控制论与科学方法论-控制与反馈
- 使用docker测试静态网站
- 看看这样的程序排错经历是否似曾相识
- Mysql索引解密(上)
- Kubernetes Dashboard 可视化插件部署 博主亲自实践可用
- Jmeter接口压测示例
- Kubernetes_v1.18.2环境搭建 博主亲自实践可用
- CVE-2020-9484:Tomcat Session 反序列化复现
- Jmeter系列之no-gui模式
- Pytest之基本介绍
- 企业常用的几种发布方式(蓝绿发布 | 滚动升级 | 金丝雀发布)
- 微信小程序的生命周期学习笔记-应用篇
- matplotlib基础绘图命令之plot
- Qt官方示例-样式表