静态爬虫与地址经纬度转换(python)

本文通过一个小例子,展示了用python进行静态爬虫的方法,并且将爬取下来的城市列表,通过调用百度地图api,返回对应经纬度。


  • requests和bs4

1,requests.get():将网页上的数据全部抓取下来。

2,BeautifulSoup():在调用了requests.get()以后,可以通过调用BeautifulSoup()来对代码进行解析。此时生成一个BeautifulSoup对象,针对这个对象,find_all函数可以帮助查找相应标签,get_text函数可以返回对象中文字内容。

  • 百度地图api申请

调用百度地图api接口,输入地址信息,得到对应经纬度坐标。申请接口AK操作如下:

1,进入百度地图开放平台官网并注册,网站地址:http://lbsyun.baidu.com/

2,点击“申请密钥”,填写个人信息,注册邮箱

3,在控制台中,点击“创建应用”,自定义应用名称,选择合适的“应用类型”,本例中通过浏览器调用,因此选择“浏览器端”。IP白名单中,如不想对IP进行限制,可写0.0.0.0/0

4,提交后,应用列表里,“访问应用(AK)”一栏,就是申请的密钥

  • 代码实例

python2与python3语法上略有不同,本例为python3下运行代码。

1,加载相应模块

 2,定义爬虫函数

打开我们要爬取的网页,如下图:

页面上点击右键查看网页源码,发现城市列表都记录在p标签中,因此我们可以通过找到p标签,来获得相应文字位置。

本例中,我们抓取一、二线城市,爬虫函数代码如下:

3,定义地址转经纬度函数

首先观察,通过api调用,返回地址经纬度的格式:

可见,经纬度信息存放在p标签内。接下来,通过对api调用结果内容的爬取,定义地址转换经纬度函数:

4,定义程序入口

最终,部分返回结果如下:

原文发布于微信公众号 - 机器学习养成记(chenchenwings)

原文发表时间:2017-12-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏任浩强的运维生涯

nginx关于限制请求数和连接数

nginx轻巧功能强大,能承受几百并发量,ddos攻击几乎没有影响到nginx自身的工作,但是,太多的请求就开始影响后端服务了。所以必须要在nginx做相应的限...

20400

Cloudify中的部署组合

[这篇文章是由DeWayne Filppi撰写的。]

499100
来自专栏程序员互动联盟

【高级编程】Linux read系统调用

最近一个项目做了一个模拟u盘的设备,但是在read虚拟u盘的内容时必须每次都从磁盘内读取,而不是从系统的cache中读取,由于这个问题,就查资料看了下read的...

396110
来自专栏前端杂货铺

node模块加载层级优化

模块加载痛点 大家也或多或少的了解node模块的加载机制,最为粗浅的表述就是依次从当前目录向上级查询node_modules目录,若发现依赖则加载。但是随着应用...

38380
来自专栏大闲人柴毛毛

Linux文件系统——全方位掌握

文件系统的特性 磁盘分区完毕后需要进行格式化,操作系统才能使用这个分区。 不同操作系统能够使用的文件系统是不同的,例如:Windows98以前使用FAT/F...

40190
来自专栏企鹅号快讯

前端开发人员如何搭建数据库

问题:我怎么才能收到你们公众号平台的推送文章呢? ? 最近有人问我,前端开发人员要存储用户数据,最简单的方法是什么。现在仅关于这部分,我来说明下怎么做。 搭建数...

352100
来自专栏Python

IO模型

一 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步:   所谓同...

21550
来自专栏蛋未明的专栏

微信扫描登录

93130
来自专栏前端大白专栏

关于redux-saga中take使用方法

16450
来自专栏搜云库

Linux下 标准错误输出重定向

Linux下” >/dev/null 2>&1 “相关知识说明 在学习Linux的过程中,常会看到一些终端命令或者程序中有”>/dev/null 2>&1 “出...

251100

扫码关注云+社区

领取腾讯云代金券