Python微博地点签到大数据实战 微博API的使用 - Go语言中文社区

Python微博地点签到大数据实战 微博API的使用


原文:http://blog.csdn.net/jackeriss/article/details/49009899

首先,你需要一个新浪开发者账号,很容易注册的,注册完后创建一个应用,创建时类型选择粉丝服务平台就行了。

(http://open.weibo.com/development/fenfu    点击右边的创建应用即可)

然后进到刚才创建的应用的页面,选择应用信息,在基本信息中可以看见以下内容


App Key:344XXXXXXX
App Secret:577a017XXXXXXXXXXXXXXXXXXXXXXXXX

应用地址:https://api.weibo.com/oauth2/default.html


这些都是使用新浪微博API的基础,有了这些,你只需要根据你所使用的语言下载相应的SDK即可放心食用。

SDK食用方法

这里仅介绍 Python 的,其他语言类似

首先,安装 weibo.py 这个库,

安装 weibo.py 库:下载新浪微博的 SDK,然后解压。  DOS命令窗口,命令行工具cd切换到该解压文件,找到setup.py文件,然后输入python setup.py install

使用时将其import进来即可。

具体调用如下:

[python] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. #coding=utf-8  
  2. import weibo  
  3. #import json  
  4.   
  5. APP_KEY = '344XXXXXXX'  
  6. APP_SECRET = '577a017XXXXXXXXXXXXXXXXXXXXXXXXX'  
  7. CALL_BACK = 'https://api.weibo.com/oauth2/default.html'  
  8.   
  9. client = weibo.APIClient(APP_KEY, APP_SECRET, CALL_BACK)  
  10. auth_url = client.get_authorize_url()  
  11. print "auth_url : " + auth_url  
  12. code = raw_input("input the retured code : ")  
  13. r = client.request_access_token(code)  
  14. client.set_access_token(r.access_token, r.expires_in)  
  15. poi_result = str(client.place.nearby.pois.get(lat=102.700171,long=25.057097))#以获取某经纬度附近的地点信息为例  
  16. print poi_result#此时poi_result是json格式的数据,利用json模块进行解析即可  
程序运行后会打印一段网址,将该网址在浏览器中打开,并用开发者账号登录。

这时会跳转到另一个界面,页面正中间写着“微博OAuth2.0”,这时候将这个页面网址中“code=”后面的内容拷贝到刚才运行的程序的提示“input the retured code : ”后面并回车。

程序会打印出离地理坐标(东经,北纬)最近的POI点的坐标,关于坐标和POI点的知识详解请看Python微博地点签到大数据实战(二)POI与坐标

Github:https://github.com/Jackeriss/weibo_checkin_spider


原文:https://github.com/Jackeriss/weibo_checkin_spider/blob/master/main.py

#coding=utf-8
  import weibo
  import json
   
  APP_KEY = 'XXXXXXXXXXXXXX'#在新浪申请一个APP
  APP_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
  CALL_BACK = 'https://api.weibo.com/oauth2/default.html'
  def run():
  client = weibo.APIClient(APP_KEY,APP_SECRET, CALL_BACK)
  auth_url = client.get_authorize_url()
  print "auth_url : "+ auth_url
  code = raw_input("input the retured code :")
  r = client.request_access_token(code)
  client.set_access_token(r.access_token, r.expires_in)
  lat_long_file = open("poi.txt","r")
  cache = []#缓存以确保不重复
  for lines in lat_long_file:
  try:
  checkin_num = 0
  title = None
  lat_long = lines.strip("n").split(",")
  longitude = lat_long[0]
  latitude = lat_long[1]
  poi_result = str(client.place.nearby.pois.get(lat=latitude,long=longitude))#返回附近多个poi点的信息
  poi_list = eval(poi_result)
  poi_string = json.dumps(poi_list)
  poi_json = json.loads(poi_string)
  for i in range(0,len(poi_json["pois"])):#把附近所有的poi点都遍历一遍
  if poi_json["pois"][i]["poiid"]in cache:
  pass
  else:
  poi_id = poi_json["pois"][i]["poiid"]
  cache.append(poi_id)
  checkin_result=str(client.place.pois.show.get(poiid=poi_id))
  checkin_list = eval(checkin_result)
  checkin_string = json.dumps(checkin_list)
  checkin_json = json.loads(checkin_string)
  checkin_num = checkin_json["checkin_num"]#签到数
  lon = checkin_json["lon"]#经度
  lat = checkin_json["lat"]#纬度
  title = checkin_json["title"]#地点名称
  if checkin_num !=0 and title != None:
  print "%st%st%st%s"%(lon,lat,checkin_num,title)
  except:
  print "ERROR!!!!"
   
  if __name__ == "__main__":
  run()

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/xiangyong58/article/details/51506958
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 22:48:55
  • 阅读 ( 1736 )
  • 分类:大数据

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢