python 爬取腾讯宜出行人流量数据

论坛 期权论坛 期权     
python二级   2019-6-29 20:45   3388   0
[h3]项目下载[/h3]
  1. https://github.com/liujiao111/map-easygo/blob/master/README.md
复制代码
[h3]工具介绍:[/h3]该工具基于微信中的宜出行提供的数据接口进行爬取,能够爬取一定范围内的当前时间点的人流量数据。地址:https://liujiao111.github.io/
[h3]环境:[/h3]
  • windows
  • python3+
  • 安装第三方包:缺啥安装啥
[h3]使用指南:[/h3]
  • 申请多个qq号,并将qq号放入当前目录下的qqlist.py文件中,格式如下:
  1. qq_list = [["11111111", "11111111"],["11111111", "11111111"],["11111111", "11111111"],["11111111", "11111111"],["11111111", "11111111"],["11111111", "11111111"],["11111111", "11111111"],["11111111", "11111111"]]
复制代码
根据你需要爬取的城市范围大小,适当申请多个qq号进行爬取(我试了下用6个号爬取来宾市的是没什么的),因为每个QQ号能爬取的数据量有限。将每个QQ号放入该文件中,并遵循已有的格式。
  • 确定需要爬取的城市矩形范围。使用百度地图提供的坐标拾取工具,确定城市的左上角、右上角、右下角、左下角四个点的坐标(大概组成一个矩形,不用太准确),并将拾取的四个坐标点依次填入setting.py文件中,并对应下面四个变量,示例:
  1. city_bound_point_A = [114.286652,30.642638] #左上角点,x619city_bound_point_D = [114.239273,30.580588] #左下角点,农场十一队city_bound_point_B = [114.462433,30.574677] #右上角点,木妙city_bound_point_C = [114.418488,30.479746] #右下角点,牛场右下角
复制代码
  • 双击
    1. run.bat
    复制代码
    文件,执行爬取程序,需要注意的是程序会自动打开谷歌浏览器并进行登陆操作,属于正常现象需要提前装好谷歌浏览器。
  • 等待一段时间后(具体不一定,大概10分钟),爬取后的结果存放到example文件夹中,里面txt文件就是爬取到的人流量数据,文件使用爬取的时间点进行命名,数据有四个字段
    1. count
    复制代码
    ,
    1. wgs_lng
    复制代码
    ,
    1. wgs_lat,time
    复制代码
    ,分别代表人流量,经度,纬度,时间点,后面可以使用该文件进行解析得到需要的数据,并进行可视化。
  • 这里提供了一个可以解析人流量txt数据文件,并生成用于百度地图热力图展示需要的数据的代码,见目录下的read_data_to_txt.py代码,需要修改代码中file_path的路径,修改为上面生成的example文件夹中txt格式的人流量数据所在文件路径,保存然后执行data2txt.bat,执行后会在当前目录下生成data_flow.xls和data.txt两个人流量数据文件。
  • 上面生成的txt文件可以拷贝内容到baidu_relitu.html文件中(文件内容有点多,请耐心等待),将html文件中第31行
    1. var points =
    复制代码
    后面的内容替换为上面data.txt中的文本内容,并且将第27行的中心点坐标替换为31行中随意一个坐标点的坐标,保存后在浏览器打开该HTML文件,即可看到在地图上展示的热力图数据。
1安装相应模块,各个文件里面的包都要安装,主要涉及pandas,selenium,requests:
作者自定义的包引入在pycharm下会报错,但是不会影响使用


2 更改qqlist.py配置文件
补充一点:这里是QQ号+密码
3 原文是run.bat运行,但始终报错,后来发现先运行run.bat,报错后再直接运行main.py也行。
爬取结果可利用坐着提供的百度SDK展示,需先去百度地图SDK官网申请key(热力图形式)




分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:30
帖子:6
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP