前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >摩拜单车数据爬虫

摩拜单车数据爬虫

作者头像
机器学习AI算法工程
发布2019-10-28 16:15:10
8530
发布2019-10-28 16:15:10
举报
文章被收录于专栏:机器学习AI算法工程
MobikeAgent

摩拜单车(Mobike)扫描器,自动搜集全国可用的单车。支持输出CSV和KML。

白色底色为Lite版单车,红色底色为老版摩拜单车,红包为红包车,你懂的。

完整代码 下载地址:

1、转发本文至朋友圈

2、关注微信公众号 datayx 然后回复 摩拜 即可获取。

依赖安装

代码语言:javascript
复制
pip install -r requirements.txt

基本使用

第一步(可选):

之前摩拜单车服务器对请求频率作出限制,必须使用代理服务器,躲避IP限制。不过似乎近期服务器在切换为OpenResty后不再限制请求频率。我搜集了几w个开放代理,存放在proxies.txt中,开放代理并不能保证一直有效,需要使用check_proxy.py筛选出可用的代理。服务器已经全面切换为HTTPS,能支持HTTPS的代理不多。

代码语言:javascript
复制
python check_proxy.py

生成的good_proxies.txt中存放可用的代理服务器

第二步:

使用mobike.py开始爬取数据,默认会使用good_proxies.txt中的代理,如果不需要使用代理,只要删掉good_proxies.txt,或者删除这个文件中的所有内容。

代码语言:javascript
复制
python mobike.py

高级用法

mobike.py中提供get_bikes_in_range函数可供外部调用,默认输出格式为CSV(车辆编号,类型,经度,纬度),也可以使用kml_path参数生成KML文件

代码语言:javascript
复制
import mobikemobike.get_bikes_in_range(116, 116.8, 39.6, 40.3, csv_path="beijing.csv")  #北京六环以内的区域,可以涵盖95%以上的车mobike.get_bikes_in_range(115.7, 117.4, 39.4, 41.6, csv_path="beijing_all.csv")  #地理书上的整个北京辖区,大约是六环内的7倍面积mobike.get_bikes_in_range(116, 116.8, 39.6, 40.3, kml_path="out.kml")   #输出KML文件,用于在Google Earth等工具中可视化

数据样例

/data目录下为2017年4月采集的北京地区数据,摩拜单车在北京已经投放了超过37w辆,文件很大,压缩了一下。注意:摩拜单车返回的是火星坐标。最新的爬虫已经会自动转换成WGS84了,但是这个文件夹里的数据目前还是使用火星坐标,爬一次还是挺费时间的,以后会统一成WGS84。

TODO:

  • 增加命令行功能,把这个脚本变成一个命令行工具

虽然优化了扫描的算法,但是爬取一次全北京的单车还是需要9w+次请求,耗时40分钟左右,请不要在高峰期运行,以免给摩拜单车的服务器造成压力。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 完整代码 下载地址:
  • 依赖安装
  • 基本使用
    • 第一步(可选):
      • 第二步:
      • 高级用法
      • 数据样例
      • TODO:
      相关产品与服务
      文件存储
      文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档