更多课程 选择中心

Python培训
美国上市教育机构

400-111-8989

Python培训

Python抓取百度地图的数据

  • 发布:琚烈Talk
  • 来源:琚烈Talk
  • 时间:2017-09-29 17:15

受一个跨专业在努力学习Python的好朋友所托,算一个约稿。

我之前发朋友圈(大概)说我认为爬虫是最没技术含量的东西...包括现在也这么觉得,因为这个东西对程序员来说可能是最简单的东西了...但架不住它实在挺有趣的,因为它带来的是短时间内能看到的最大可视化可利用的成果,可以极大增加你学习路线上的乐趣。

虽然我说没技术含量,我的意思不是说大家不要去学这个东西,而是说,身为程序员(划重点)不要把这个看成是什么很厉害的东西,它只是一个辅助工具,真正的难点是对你爬取的数据的后续处理...

我前段时间看到一篇文章,是通过Python把微博上薛之谦和李雨桐微博底下的评论全部扒了下来,然后通过jieba分词,最后生成词云来看广大网民在想些什么,最后是脑残粉依旧无脑支持,路人怕反转等实锤...不过说实话这场战斗我真的看吐了,我不想看每天刷刷微博虎扑都强行给你往眼睛里灌……

说了这么多废话,总是意思就是我自己打自己脸了,爬虫虽然没技术含量,但真的有点好玩儿...接下来进入正题说说怎么用Python去爬百度地图的东西。

简单来说,对于一个动态页面,浏览器获取数据无非是通过GET或POST两种方式,然后用参数告诉它我想要什么。

那么怎么去获取这些参数呢?以百度地图为例。

最粗暴的方法就是,进入map.baidu.com,摁下F12,然后切换到Network下,随便搜一点东西,就会看到有源源不断的东西流进来。

注意到,上方URL后面跟着的是 ?newmap=1&s=con%26wd%3D 字样,我们通过排序方式找到和这个字样相同的文件,通常选择第一个,当然其他的也可以看看有没有我们想要的参数。

然后看到这里就是我们想要的参数啦:

参数意义是不明的,得自己去试,最后我用了这么几个参数,发现应该是可以用的:

以字典的形式存储在Python文件里,这里要注意的是城市代码,这个要通过百度官方提供的文档去获取,靠猜是猜不到的。

接下来就是一些很常规的步骤,用正则表达式去匹配我们想要的结果,这里我对参数的设置是看看有一个城市的必胜客数量,地址和联系方式:

最后通过改变字典对应键的值来更改希望搜索的城市:

整个爬虫就完成了,总结一下就是先获得参数,然后通过代码模拟浏览器提交给服务器,最后得到服务器返回的结果,所以要获得结果并不难,如何去处理这些结果然后提取你想要的东西才是关键。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:9行Python代码搭建神经网络(代码)
下一篇:Python+sklearn使用线性回归算法预测儿童身高

Python编程练习三

Python正则表达式练习

Python 2的结束意味着什么

用python做一个划词翻译软件

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省