最近有個需求是要爬取街景圖片,國內廠商百度高德和騰訊地圖都沒有開放接口,查詢資料得知谷歌地圖開放街景api
谷歌捷徑申請key地址:https://developers.google.com/maps/documentation/streetview/
下面是一些街景照片的參數信息。
size:圖片尺寸
location:經緯度
heading:朝向角度
pitch:旋轉角度
key:自己的API_KEY
下面開始代碼:
1 # _*_ coding: utf-8 _*_ 2 __author__ = 'herrylee' 3 4 import urllib.request 5 6 def download(url, name): 8 #url = "http://pic2.sc.chinaz.com/files/pic/pic9/201309/apic520.jpg" 9 #保存文件時候注意類型要匹配,如要保存的圖片為jpg,則打開的文件的名稱必須是jpg格式,否則會產生無效圖片 10 conn = urllib.request.urlopen(url) 11 12 f = open(name, 'wb') #wb以二進制格式打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 13 f.write(conn.read()) 14 f.close() 15 print('Pic Saved!') 16 17 fp = open("C:\\Users\\Administrator\\Desktop\\GPS\\paris.txt","r") #以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。 18 for line in fp.readlines(): 19 line = (lambda x: x[11:33])(line) #選取從第十一個到第十三個字符 也可以寫成line = (lambda x: x[11:-11])(line) 20 print(line) 21 zu = line.split('_') 22 jin = zu[0] 23 wei = zu[1] 24 heading = zu[2] 25 name = "C:\\Users\\Administrator\\Desktop\\GPS\\paris_sub\\" + jin + "_" + wei + "_" + heading + "_-004.JPG" 26 url = "https://maps.googleapis.com/maps/api/streetview?size=936x537&location=" + jin + "," + wei + "&heading=" +heading + "&pitch=-004&key="+"key" 27 print(name) 28 print (url) 29 download(url, name) 30 fp.close()
下面是讀取的坐標信息txt文檔內容
'paris_sub/48.651717_2.493865_270_-004.JPG'
'paris_sub/48.756312_2.069988_90_-004.JPG'
'paris_sub/48.759815_2.502092_90_-004.JPG'
'paris_sub/48.911445_1.850626_270_-004.JPG'
'paris_sub/48.893319_2.262638_90_-004.JPG'
'paris_sub/48.815737_2.412183_270_-004.JPG'
'paris_sub/48.905476_2.527302_90_-004.JPG'
'paris_sub/48.912099_2.285934_270_-004.JPG'
'paris_sub/48.772068_2.033889_90_-004.JPG'
'paris_sub/48.648679_2.306182_90_-004.JPG'
'paris_sub/48.618283_2.925704_90_-004.JPG'
'paris_sub/48.926558_1.941170_270_-004.JPG'
'paris_sub/48.881077_2.705896_90_-004.JPG'
'paris_sub/48.966915_2.477976_90_-004.JPG'
'paris_sub/49.105046_2.245066_270_-004.JPG'
'paris_sub/48.703037_2.216347_270_-004.JPG'
'paris_sub/48.791862_2.420343_90_-004.JPG'
'paris_sub/48.681379_2.660818_90_-004.JPG'
'paris_sub/48.712748_2.377744_90_-004.JPG'
'paris_sub/48.806908_2.604621_270_-004.JPG'
'paris_sub/48.652523_1.862794_90_-004.JPG'
'paris_sub/48.488890_2.270909_90_-004.JPG'
'paris_sub/48.525296_1.950706_270_-004.JPG'
運行腳本輸出信息
有一點需要注意 由於爬取的谷歌街景,眾所周知的原因,我們需要fq,因此采取的模式是ssr,代理模式應該是全局模式,否則會報錯 訪問不通。