作家
登录

我是怎样爬下6万共享单车数据并进行分析的(附代码)

作者: 来源: 2017-12-06 09:04:35 阅读 我要评论

摩拜单车的API返回的是一个正方形区域中的单车,我只要按照一块一块的区域移动就能抓取到全部大年夜区域的数据。

数据分析显示3公里以下的出行舅鏊榧据了87.2%,这也十分相符共享单车的定位。100米以下的距离也占据了大年夜量的数据,但认为100米以下的数据为GPS的波动,所以予以清除。

left,top,right,bottom定义了抓取典范围,今朝是成都会绕崇高速之内以及南至南湖的┞俘方形区域。offset定义了抓取的距离,如今以0.002为基准,在DigitalOcean 5$的办事器上可以或许15分钟内抓取一次。

  1. def start(self): 
  2.  
  3.         left = 30.7828453209 
  4.  
  5.         top = 103.9213455517 
  6.  
  7.         right = 30.4781772402 
  8.  
  9.         bottom = 104.2178123382  
  10.  
  11.  
  12.         offset = 0.002  
  13.  
  14.  
  15.         if os.path.isfile(self.db_name): 
  16.              os.remove(self.db_name)  
  17.  
  18.  
  19.         try: 
  20.  
  21.             with sqlite3.connect(self.db_name) as c: 
  22.  
  23.                 c.execute('''CREATE TABLE mobike 
  24.  
  25.                     (Time DATETIME, bikeIds VARCHAR(12), bikeType TINYINT,distId INTEGER,distNum TINYINT, type TINYINT, x DOUBLE, y DOUBLE)''') 
  26.  
  27.         except Exception as ex: 
  28.  
  29.             pass 

然后就启动了250个线程,至于你要问我为什么没有效协程,哼哼~~我当时没学~~~其实是可以的,说不定效力更高。

因为抓取后须要对数据进行去重,以便清除小正方形区域之间反复的部分,最后的group_data恰是做这个工作。     

骑行次数

  1. executor = ThreadPoolExecutor(max_workers=250) 
  2.  
  3.         print("Start"
  4.  
  5.         self.total = 0 
  6.  
  7.         lat_range = np.arange(leftright, -offset) 
  8.  
  9.         for lat in

      推荐阅读

      云端定价比较:AWS、Microsoft Azure、Google Cloud、IBM Cloud之间的对决

    开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散因为重要的云供给商(AWS、Azure、谷歌和IBM)的云实例价格的持续降低,是以它们增长了扣头选项、增长了实例,并在某些情况下将计费增量降到了按秒>>>详细阅读


    本文标题:我是怎样爬下6万共享单车数据并进行分析的(附代码)

    地址:http://www.17bianji.com/lsqh/39482.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)