之前用.Net做过一些自动化爬虫程序,听大牛们说使用python来写爬虫更便捷,按捺不住抽空试了一把,使用Python抓取百度街景影像。

这两天,武汉迎来了一个德国总理默克尔这位大人物,又刷了一把武汉长江大桥,今天就以武汉长江大桥为例,使用Python抓取该位置的街景影像。

百度街景URL分析

基于http抓包工具,可以很轻松的获取到浏览百度街景时的http请求数据。如下图所示,即是长江大桥某位置点街景影像切片:

该切片对应的URL请求为:

细致分析该URL请求,并经过模拟测试,可以总结出如下初步结论

请求影像切片所需的几个关键参数分别为:

① sid:代表某个具体的街景点位;

② pos:代表该切片在完整的全景影像图上的切片坐标;

③ z:代表街景影像切片级别。

单个位置的街景影像图可以生产出多种级别的切片,不同的级别下,切片的数量是不同的;切片的坐标使用行号、列号予以区分。

明确了以上百度街景影像的切片规则,就可以用代码开撸了。

Python源码

要求:一次性抓取连续10个全景点的所有级别切片信息。

源码如下:

import urllib2
import threading
from optparse import OptionParser
# from bs4 import BeautifulSoup
import sys
import re
import urlparse
import Queue
import hashlib
import osdef download(url, path, name):conn = urllib2.urlopen(url)if not os.path.exists(path):os.makedirs(path)f = open(path + name, 'wb')f.write(conn.read())f.close()fp = open("E:\\Workspaces\\Python\\panolist.txt", "r")
for line in fp.readlines():line =  (lambda x: x[1:-2])(line)# url = linefor zoom in range(1, 6):row_max = 0col_max = 0row_max = pow(2, zoom - 2) if zoom > 1 else 1col_max = pow(2, zoom - 1)for row in range(row_max):for col in range(col_max):z = str(zoom)y = str(row)x = str(col)print(y + "_" + x)url = line + "&pos=" + y + "_" + x + "&z=" + zpath = "E:\\Workspaces\\Python\\pano\\" + url.split('&')[1].split('=')[1] + "\\" + z + "\\"name = y + "_" + x + ".jpg"print urlprint namedownload(url, path, name)
fp.close()

抓取结果如下,按上述分析的规则进行本地化存储,可以看到各级别下,所有的切片拼接起来,刚好是一张完整的全景图。

小结

① Python这门语言真的是蛮便捷,安装和配置都十分方便,也有很多IDE都支持,我初次使用,遇上问题就随手查Python语言手册,基本上半天完成该代码示例。

② 在爬虫程序方面,Python相关资源十分丰富,是爬虫开发的一把利器。

上述代码简要的实现了批量抓取百度街景影像切片数据,大量使用的话,建议继续处理一下,加上模拟浏览器访问的处理,否则很容易被服务方直接侦测到来自网络爬虫的资源请求,而导致封堵。

附 python爬虫入门(一)urllib和urllib2 https://www.cnblogs.com/derek1184405959/p/8448875.html

转载于:https://www.cnblogs.com/hans_gis/p/11487228.html

Python爬虫之小试牛刀——使用Python抓取百度街景图像相关推荐

  1. python爬虫教程,带你抓取百度的高清摄影图片

    python爬虫教程,带你抓取百度的高清摄影图片 源码分享: ''' 在学习过程中有什么不懂得可以加我的 python学习交流扣扣qun,934109170 群里有不错的学习教程.开发工具与电子书籍. ...

  2. python中国大学排名爬虫写明详细步骤-Python爬虫--2019大学排名数据抓取

    Python爬虫--2019大学排名数据抓取 准备工作 输入:大学排名URL连接 输出:大学排名信息屏幕输出 所需要用到的库:requests,bs4 思路 获取网页信息 提取网页中的内容并放到数据结 ...

  3. 如何用python抓取文献_浅谈Python爬虫技术的网页数据抓取与分析

    浅谈 Python 爬虫技术的网页数据抓取与分析 吴永聪 [期刊名称] <计算机时代> [年 ( 卷 ), 期] 2019(000)008 [摘要] 近年来 , 随着互联网的发展 , 如何 ...

  4. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  5. 从入门到入土:Python爬虫学习|实例练手|爬取百度产品列表|Xpath定位标签爬取|代码注释详解

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  6. Python爬虫成长之路:抓取证券之星的股票数据(转)

    获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...

  7. python爬虫之scrapy初试与抓取链家成交房产记录

    接上一篇文章,本机安装好python之后和scrapy之后,我们开始学习使用scrapy创建爬虫程序. 今天先来点简单的,不那么复杂,先看看抓取链家网里面的房价信息. 首先使用CMD命令行进入F盘创建 ...

  8. 基于Python爬虫的股票成交量数据抓取分析系统

    目录 数据获取 2 1.1. 实验环境搭建 2 1.2. 抓取数据 2 1.2.1. 新浪财经 3 1.2.2. 网易财经 6 1.2.3. 东方财富 12 1.2.4. TuShare (挖地兔) ...

  9. python爬虫:使用scrapy框架抓取360超清壁纸(10W+超清壁纸等你来爬)

    目的:闲着无聊,利用爬虫爬取360超清壁纸,并将其数据存储至MongoDB/MySQL中,将图片下载至指定文件夹. 要求:确保以安装MongoDB或者MySQL数据库.scrapy框架也肯定必须有的: ...

最新文章

  1. 我们能从大学里学到什么
  2. JavaScript中的执行环境
  3. Xavier初始化和He初始化
  4. Python 技术篇 - pip下载、安装慢解决方法,更改pip数据源实现秒速下载,配置阿里云国内镜像实例演示
  5. python学习系列day4-python基础
  6. python对象序列化或持久化的方法
  7. HTML特殊符号/特殊字符
  8. 操作系统概念学习笔记 4 操作系统结构和操作简述
  9. 如何用php开启企业微信开发的回调模式
  10. 单闭环直流调速系统仿真实验
  11. 华为认证hcia含金量_华为HCIA认证含金量如何?
  12. boost电路输出电流公式_开关电源BOOST拓扑计算公式和参考分析
  13. spss入门——简单的数据预处理到时间序列分析系列(六)
  14. Pacman基本使用
  15. Thinkpad 笔记本 装win7 64 位操作系统热键驱动装不上问题解决!
  16. java在浏览器闪退_Edge浏览器闪退怎么办,Edge浏览器闪退如何修复
  17. linux fuse安装脚本,Linux FUSE(用户态文件系统)的使用:用libfuse创建FUSE文件系统...
  18. 1.Transformer-Attention is all your need论文详读-PartⅠ(摘要、引言、背景)
  19. 【HTML】表格标签,map,iframe,h5标签,语义化,标签分类,role,aria-*
  20. PLSQL-Initialization error

热门文章

  1. 防止excel单元格有效性验证因被粘贴而失效
  2. 华为交换路由命令学习笔记
  3. 数值分析笔记(一):方程求根
  4. 二阶常系数偏微分线性变量代换化简
  5. python 指定证书验证_Python SSL证书验证问题解决方案
  6. 基于springboot电影购票管理系统
  7. 微信小程序引入外部icon(阿里巴巴矢量图标)
  8. PHP hypot,hypot - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  9. SAP PP CO02 生产工单修改日志增强
  10. android studio记账,Android Studio——记账本以及图表可视化实现