<em id="whkdg"></em>

    <div id="whkdg"><tr id="whkdg"></tr></div>

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

    96
    人生苦短丨我爱python
    2019.01.18 10:46* 字数 646

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

    学习Python中有不明白推荐加入交流群

                号:960410445
                群里有?#23601;?#36947;合的小伙伴,互帮互助,
                群里有不错的视频学习教程和PDF!
    

    image

    1. 数据来源

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

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

    image
    image
    1. 爬虫过程

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

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

    **2.1 ** 用到哪些python库:

    接口请求:采用requests库;

    dom解析:采用lxml库;

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

    json操作:采用json库

    *2.2 *用到哪些python数据结构:

    list: 存储线路列表

    dict:存储线路和站点信息

    string: 存储各字段信息

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

    1. 源码

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

    1. 总结

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

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

    日记本
    Gupao
    江西多乐彩app下载
    <em id="whkdg"></em>

    <div id="whkdg"><tr id="whkdg"></tr></div>

    <em id="whkdg"></em>

    <div id="whkdg"><tr id="whkdg"></tr></div>

  • 快乐赛车北京pk10 led篮球比分牌 神马连连单双中特 大乐透012期历史记录 2019nba比分记录 湖北福利彩票官方网站 广西11选5任二技巧 中国福彩中心双色球 qq三张牌怎么这么卡 精准六肖中特 中国体育彩票标志图 福建11选5开奖直播 七星彩走势图近1000 云南时时彩历史开奖号码百度彩票 新浪彩票竞技风暴