前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python2.7进行爬虫POI代码(划分小网格算法)

python2.7进行爬虫POI代码(划分小网格算法)

作者头像
学到老
发布2018-03-16 11:39:42
6210
发布2018-03-16 11:39:42
举报
查询许久,最终选择一个,之前一直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         
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档