之前用.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 os

def 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 = line

for zoom in range(1, 6):

row_max = 0

col_max = 0

row_max = pow(2, zoom - 2) if zoom > 1 else 1

col_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=" + z

path = "E:\\Workspaces\\Python\\pano\\" + url.split('&')[1].split('=')[1] + "\\" + z + "\\"

name = y + "_" + x + ".jpg"

print url

print name

download(url, path, name)

fp.close()

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

小结

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

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

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

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

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

  1. python爬今日头条组图_python 爬虫抓取今日头条街拍图片

    1. 打开google浏览器,输入www.toutiao.com, 搜索街拍.html 2.打开开发者选项,network监看加载的xhr, 数据是ajax异步加载的,能够看到preview里面的da ...

  2. python爬微信公众号视频_python爬虫公众号所有信息,并批量下载公众号视频

    之前写过一篇类似的文章:python爬取公众号,用最简单的方式爬虫 还有同学一直在问,可能中间有一些小细节不明确,这次彻底明确一下细节. 本篇添加一个批量下载公众号内视频的功能,可以实现完全复制一个公 ...

  3. python爬虫抓取分页_Python爬虫—简书首页数据抓取

    简书 本该昨天完成的文章,拖了一天.可能是没休息好吧,昨天的在思路以及代码处理上存在很多问题,废话不多说,我们一起来看一下简书首页数据的抓取. 抓取的信息 2.2)简书首页文章信息 http://ww ...

  4. python爬人人贷代码视频_Python爬虫 - 人人贷散标

    前言这次爬的网站 [人人贷 - 散标](网贷p2p散标列表 - 人人贷官网) 是一个客户要求爬的,数据一共是148w多条,不过后来发现有绝大部分是无效数据,也就是那个页面不存在,不过我看网上很多人爬这 ...

  5. python爬携程酒店评论_python爬虫爬取携程网的酒店评论数据时,有个请求参数不知道是怎么生成的?...

    是下面这个代码生成的,看不懂: ,_getElevenValue:function(e){ function o(e){ for(var o=["A","B", ...

  6. python爬取文本中的成语_python爬虫的简单项目之爬取成语

    from selenium import webdriver from idiom import DbHandle option = webdriver.ChromeOptions() option. ...

  7. python爬微博超话图片_Python爬虫:《庆余年》人物图谱和微博传播路径

    利用Python分析<庆余年>人物图谱和微博传播路径 庆余年电视剧终于在前两天上了,这两天赶紧爬取微博数据看一下它的表现. 庆余年 <庆余年>是作家猫腻的小说.这部从2007年 ...

  8. python爬虫源码怎么使用_Python爬虫具体应该怎么使用?

    1.首先,什么时候我们需要爬虫呢? 当我们需要某网站上的海量数据的时候,会发现,如果人工去把几百页,每页几十条到几百条的数据一条一条地复制下来,就太费时费力了,甚至根本就不可能.但是你做研究却需要这样 ...

  9. python爬歌词生成词云图_Python爬虫摇滚网易云音乐歌词生成词云图

    我相信经过前三篇文章,大家已经学会了怎么下载歌词和歌曲了.看了我的文章后开始行动起来的应该都享受到音乐的福利了.问一个问题,当你疲惫时,你想提起精神来去工作或者看书,你会选择听什么歌曲让自己兴奋起来呢 ...

  10. python爬虫源码附注解_Python爬虫遇到验证码的几种处理方式,文章末尾有源码

    最近事情其实挺多了,打了一下蓝桥杯的比赛, 还在准备着一些证书的考试, 关于爬虫之类的博客都搁着了一段时间了, 关于我自己确实有点退步了, 实属不该, 其实我自己也是在想, 大三了,到底我是要去考研, ...

最新文章

  1. 从numpy开启Python数据科学之旅
  2. 全排列:不含重复元素和含重复元素的全排列
  3. 设计模式系列1:单例模式(Singleton Pattern)
  4. sql server2005 通用分页方法
  5. rust(13)-闭包作为参数 trait泛型
  6. 总结:服务器硬件对性能的影响
  7. AI考拉技术分享会--IDE 常用功能 for Node.js
  8. awk 查看ip连接数(常见应用一)
  9. 【转】linux下cpio命令使用
  10. linux运行虚幻引擎4,虚幻引擎4.25开发环境如何设置
  11. 原生ajax如何跨域,原生ajax 如何解决cors跨域问题
  12. Win10 PowerToys官方免费效率小工具集
  13. AES攻击方法 :差分密码分析 boomerang attack飞去来器攻击
  14. 电脑网络中看到不工作组计算机,win7系统看不到工作组计算机怎么办?win7系统看不到工作组计算机解决方法...
  15. 机器学习流程(三)-特征工程
  16. uniapp一键登录
  17. 魔兽世界---熊猫人之谜
  18. Linux下默认字体是什么,linux默认字体是什么
  19. CSS3 border-radius 属性
  20. 如何正确的撰写软文的结尾?

热门文章

  1. 2021-02-13L:1652 2.08---2.141576L
  2. 阿帕拉契州立大学代表团访问AURAK
  3. 《经济学原理》——读书笔记(二)
  4. 知识付费资源变现小程序源码+可开流量主/带教程
  5. python卡路里计算器_python习题20190130
  6. python压缩解压缩_Python实现压缩和解压缩ZIP文件的方法分析
  7. Win11如何重置电脑 Win11重置电脑教程
  8. 让聊天机器人来填平技术鸿沟吧!
  9. 线程执行完之后会释放吗_有人说,爬完黄山之后的第二件事就是去歙县徽州古城,你会去吗?...
  10. 微信小程序使用animation动画实现消息从左向右滚动