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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏魏艾斯博客www.vpsss.net

代码实现 WordPress 文章中英文数字间自动添加空格

2523
来自专栏更流畅、简洁的软件开发方式

【开源】QuickPager 分页控件的内部结构,和OO原则与设计模式

关键字:提出需求、需求分析、原则、设计模式、索引      先说一下讨论的范围:使用数据库保存信息的项目,b/s结构,asp.net编写。请不要讨论这个范围之外...

2126
来自专栏深度学习之tensorflow实战篇

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

查询许久,最终选择一个,之前一直py3.6不成功,换了2.7就好多了。如果有重复去下重即可。 这里面非常重要的基类对象的init()方法与超类方法,将在下面进行...

28111
来自专栏技术博文

关于微信二次分享,标题变链接的解决方法(二)----代码部分

声明: 本篇博文只是个人工作中的分享总结,仅代表个人观点,虽然解决了不少网友的问题,但同时也引来了一些网友的不满,所以特此声明,当您遇到本博文解决不了的问题,可...

3676
来自专栏韦弦的偶尔分享

微信小程序后台返回大量多余数据的处理

其实我只要id和name,找后台解决、、、算了吧,奈何天生就是个儒生,温文尔雅,打架是打不赢的,要是能打赢的就直接打吧,打完让他们改!

3113
来自专栏云飞学编程

Python爬虫学习,记一次抓包获取js,从js函数中取数据的过程

昨天有小伙伴找我,新浪新闻的国内新闻页,其他部分都是静态网页可以抓到,但是在左下方的最新新闻部分,不是静态网页,也没有json数据,让我帮忙抓一下。大概看了下,...

1302
来自专栏Crossin的编程教室

这些年,你们一起踩过的坑(1)

编程教室创建5年多了,回答的问题不说上万也有好几千了。尽管大多数的问题在过去的文章以及论坛上都有讲过不止一遍,但因为不断有新人到来,难免还是被这些小坑磕磕绊绊一...

1255
来自专栏web前端

一个最简单的jQuery插件编写历程

第一次写jQuery插件,简直无从下手,好在一步一步从简单到复杂(对我来说挺复杂的),终于理解了jQuery插件的写法规则,并最终以一个新闻式插件面世。尤其感谢...

2169
来自专栏DeveWork

WordPress删除头部wp_head()多余代码

如果你有查看过你的WordPress博客的“查看源代码”的话,你会发现头部的html代码非常多,而且是密密麻麻,有些像meta name="generator"...

8997
来自专栏开源优测

AutoLine开源平台简明教程

当前已经默认集成了RobotFramework一下关键字,关键字的用法完全同RobotFramework

1423

扫码关注云+社区

领取腾讯云代金券