阅读本文大概需要 3 分钟。

最近两天工作之余,开始涉猎python,自动爬取了全国30+城市地铁图数据,这里分享下整个爬虫过程

1. 数据来源

首先分析全国各个城市地铁图的数据来源,无非就是百度或者高德,这次选择用高德作为数据来源。打开高德地铁图PC端官网 http://map.amap.com/subway/index.html?&1100,点击每个城市可以看到当前城市的地铁图,打开浏览器F12一下,可以很容易看到Ajax请求接口后,地铁图才绘制出来的。

分析得知,xhr请求的接口数据便是我们需要的一部分数据(包含线路名称、线路名称坐标、线路轨迹、站点名称、站点定位坐标等),另一部分数据则是直接在Dom节点中(包含站点名称坐标),所以我们要爬取的数据便是Ajax接口数据 + Dom节点数据,如图所示:


2. 爬虫过程

了解清楚数据来源后,就开始进行python准备工作,记住万能公式 :  程序 = 『数据结构』 +『 算法』

你要做的准备工作便是本次学习后收获的知识点:

2.1 用到哪些python库:

接口请求:采用requests库;

dom解析:采用lxml库;

浏览器自动化操作:采用selenium以及chrome浏览器驱动;

json操作:采用json库

2.2 用到哪些python数据结构:

list:    存储线路列表

dict:存储线路和站点信息

string:  存储各字段信息

这里不再讲述各个依赖库的安装,有针对性学习python相关知识点,就可以愉快地编码了,运行写好的爬虫脚本,不用任何手动操作,就可得到30+城市的json格式地铁图数据文件了


3. 源码

https://github.com/caijinlin/python-spider (内附抓取视频)

4. 总结

编码的过程中,遇到这样一个问题,有些城市的菜单在页面的『更多』里面,加载完页面后是隐藏的,python打开浏览器模拟点击的时候,会报一个找不到该元素的错误,经过google一番,总结了两个解决方案,亲测可用

https://github.com/caijinlin/dev-solutions/issues/14


学习不应该停留理论,动手实践并输出,方可检验你的学习成果,一起操练起来吧

爱篮球的程序猿,让成长成为一种习惯

如何用Python自动爬取全国30+城市地铁图数据?相关推荐

  1. 利用Python自动爬取全国30+城市地铁图数据

    数据来源 首先分析全国各个城市地铁图的数据来源,无非就是百度或者高德,这次选择用高德作为数据来源. 基本环境配置 版本:Python3 系统:Windows 相关模块: 安装请求库 pip insta ...

  2. 每日一练:Python爬虫爬取全国新冠肺炎疫情数据实例详解,使用beautifulsoup4库实现

    Python 爬虫篇 - 爬取全国新冠肺炎疫情数据实例详解 效果图展示 第一章:疫情信息的下载与数据提取 ① 爬取页面数据到本地 ② json 字符串正则表达式分析 ③ 提取数据中的 json 字符串 ...

  3. 你在的城市撒币了吗?Python爬取全国各城市消费券发放数据并分析

    前言 近期,全国多地以各种形式投放消费券.消费补贴来鼓励消费,部分城市在首期消费券的基础上,连续追加发放多期消费券.你在的城市撒币了吗?哪个省份最爱撒币?哪个城市撒币最多?跟随本文一起来看看. 数据说 ...

  4. 利用Python爬取全国250m精度的人口数据

    此次以GeoQ(智图)为基础,利用Python爬取全国250m精度的人口数据(GeoQ)这个网站开放过250m精度的人口分布数据,而且人口分布有年龄分段等属性.先得注册登录到达创建地图的界面. 看人口 ...

  5. 利用Python爬取全国250m精度的人口数据(GeoQ)、房价数据和公交站(线路)等数据

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 中原百科 GIS大师兄 PS:如有需要Python学习资料的小伙伴可 ...

  6. 利用Python爬取全国250m精度的人口数据、房价数据等数据 | CSDN博文精选

    作者 | 中原百科来源 | CSDN博客 (一) 我的第一篇博客写的就是爬取人口数据基于腾讯位置大数据平台的全球移动定位数据获取(Python爬取),精度是1000m,后来有朋友和我说有个网站开放过2 ...

  7. python自动爬取快看漫画并发布至头条号(没编程基础也可学会)

    一,介绍 1.简介:这是一个可以自动爬取快看漫画上的漫画,下载到本地,并自动发布到今日头条号的编程,无编程基础的人也可学会 2.学习: 1)对于学习python技术的,你可以学习python爬虫技术 ...

  8. Python爬虫实战之 爬取全国理工类大学数量+数据可视化

    上次爬取高考分数线这部分收了个尾,今天咱们来全面爬取全国各省有多少所理工类大学,并简单实现一个数据可视化.话不多说,咱们开始吧. 第一步,拿到url地址 第二步,获取高校数据 第三步,地图可视化 第四 ...

  9. Python爬虫-爬取全国各地市的邮编链接

    最近练习爬虫,爬取全国各地市的邮编链接,与大家分享,希望起到抛砖引玉的作用. 源代码如下: import requests from lxml import etree headers = {&quo ...

最新文章

  1. 用Python实现Gauss-Jordan求逆矩阵
  2. wxPython实现在浏览器中打开链接
  3. 经典汉诺塔(Java初学递归篇)
  4. 老刘说NLP:焦虑被大肆贩卖下的自然语言处理学习思考
  5. api网关 android,如何通过Android上的retrofit2使用Cognito Credentials调用API网关?
  6. 学生管理系统(Java实现)
  7. ExcelDNA开发视频教程-刘永富-专题视频课程
  8. 最全的LBS手机定位技术说明
  9. HTML与CSS实现网页的超链接及美化
  10. tf.nn.batch_normalization() 和 tf.layer.batch_normalization()
  11. 【Centos 7】---vim环境配色(colorscheme)配置
  12. 什么是时间戳?Vue 转换时间戳
  13. 众筹系统源码 java_基于JavaWeb的创意众筹网站系统的设计与实现 毕业论文+任务书+开题报告+外文翻译+设计源码+mysql文件...
  14. oracle 获取第三行,Oracle 11g 第三章知识点总结——单行函数
  15. 线性回归预测PM2.5
  16. barn1uscao1.3 -贪心
  17. X1 carbon 2015安装win7、win10后触控板驱动安装失败(双指滑动无效、多指操作无效)的另类解决之道
  18. 美的华为鸿蒙,美的鸿蒙家电正式上线!华为鸿蒙系统,你很快就能用上!
  19. 青少年CTF Misc-Easy 百家姓 WP
  20. linux 电池驱动

热门文章

  1. matlab 去NaN
  2. 旅行照片剪辑--扬州篇
  3. HDU3085 Nightmare Ⅱ
  4. Mac版Ps、AE、PR不能突然使用?Adobe全家桶关闭自动更新的方法
  5. STM32 IAP升级(bootLoader)
  6. 文件删除不了的解决办法
  7. android 文件删除不了
  8. 多媒体技术基本概念汇总
  9. 如何写出优美的代码-写的爽读的爽
  10. 范特西公司面试2012/10/23