MobikeAgent
摩拜单车(Mobike)扫描器,自动搜集全国可用的单车。支持输出CSV和KML。
白色底色为Lite版单车,红色底色为老版摩拜单车,红包为红包车,你懂的。
完整代码 下载地址:
1、转发本文至朋友圈
2、关注微信公众号 datayx 然后回复 摩拜 即可获取。
依赖安装
pip install -r requirements.txt
基本使用
第一步(可选):
之前摩拜单车服务器对请求频率作出限制,必须使用代理服务器,躲避IP限制。不过似乎近期服务器在切换为OpenResty后不再限制请求频率。我搜集了几w个开放代理,存放在proxies.txt中,开放代理并不能保证一直有效,需要使用check_proxy.py筛选出可用的代理。服务器已经全面切换为HTTPS,能支持HTTPS的代理不多。
python check_proxy.py
生成的good_proxies.txt中存放可用的代理服务器
第二步:
使用mobike.py开始爬取数据,默认会使用good_proxies.txt中的代理,如果不需要使用代理,只要删掉good_proxies.txt,或者删除这个文件中的所有内容。
python mobike.py
高级用法
mobike.py中提供get_bikes_in_range函数可供外部调用,默认输出格式为CSV(车辆编号,类型,经度,纬度),也可以使用kml_path参数生成KML文件
import mobike
mobike.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分钟左右,请不要在高峰期运行,以免给摩拜单车的服务器造成压力。
阅读过本文的人还看了以下:
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
长按图片,识别二维码,点关注
深度学习500问
如何寻找超参数的最优值?
在使用机器学习算法时,总有一些难搞的超参数。例如权重衰减大小,高斯核宽度等等。 算法不会设置这些参数,而是需要你去设置它们的值。设置的值对结果产生较大影响。常见设 置超参数的做法有:
1、猜测和检查:根据经验或直觉,选择参数,一直迭代。