今天百度街景的权限申请成功了,所以就试了下之前找到的一个爬取街景的代码,我把原作者导入数据时文件格式txt改成了xlsx,因为表格比较方便批量修改一些内容。
爬取到的街景影像有很多都没有数据,返回的是一些固定的图片,一个一个筛选太麻烦了,所以写了一段代码可以检测到这些影像,并且改名为特定格式,方便后续的一些筛选工作。
直接上代码
import urllib.request #打开网页模块
import urllib.parse #转码模块
import pandas as pd
import os
import requests
#这里的路径可替换为自己保存文件夹的路径
save_path = r'D: 1bachelorsk04paperbdSVI/'
ak = "Lvgt7yw6mGCklShvUFzzss3i4fSqOEQu"
#判断文件夹是否存在,若不存在则创建
if not os.path.exists(save_path):
os.makedirs(save_path)
data = pd.read_excel(r"D: 1bachelorsk04paperSamplePoints400经纬度.xlsx",index_col = 0,usecols="A:C")
def Scrap_img():
#使用for循环遍历出每个location坐标
for i in range(400):
#获取采样点经纬度
location_number = str(data.iloc[i][0])+','+str(data.iloc[i][1])
#水平角度获取4个方向的照片
for j in range(4):
#旋转的角度
#[0,1,2,3] * 90 = [0,90,180,270]
heading_number = str(90*j)
url = r"https://api.map.baidu.com/panorama/v2?"
"&width=1024&height=512"
"&location="+location_number+
"&heading="+heading_number+
"&ak=" + ak
#文件保存名称
save_name =str(i)+"."+str(j)+".jpg"
print(url)
#打开网页
rep = urllib.request.urlopen(url)
#将图片存入本地,创建一个save_name的文件,wb为写入
f = open(save_path+save_name,'wb')
#写入图片
f.write(rep.read())
f.close()
print('图片保存成功')
def Cheak_img():
#遍历文件夹中的图片
for im in os.listdir(save_path):
#获取图片绝对路径
file_path = os.path.abspath("im")
#计算图片占用内存
im_occupy = os.path.getsize(os.path.join(save_path,im))
if im_occupy < 100:
os.rename(os.path.join(save_path,im),os.path.join(save_path,'No_found'+im))
Scrap_img()
Cheak_img()



