日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬取百度地图数据_百度地图POI数据爬取

發布時間:2023/12/20 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬取百度地图数据_百度地图POI数据爬取 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用百度地圖開發者中心中的web API獲取城市POI數據,后期會寫出完整的多種參數詳細數據獲取教程。本次只寫出了根據關鍵詞和目的地的數據獲取程序。

將爬取下來的數據保存到本地csv文件。

百度API返回的是標準的json格式數據。具體實現程序如下:

import time

import json

import sys

import requests

from tqdm import tqdm #進度條顯示包

def get_info(keyname, place, ak, path):

"""

Function:

Arg:

keyname:傳入的是一個關鍵字列表

place:傳入的是一個查詢地方(str)

ak:申請的百度地圖開發者中心的AK

"""

urls = []

for i in keyname:

url = "http://api.map.baidu.com/place/v2/search?query="+i+"&region="+place+"&output=json&ak="+ak

urls.append(url)

for url in tqdm(urls):

try:

time.sleep(0.1) # 為了防止并發量報警,設置了一個5秒的休眠。

html = requests.get(url) # 獲取網頁信息

data = html.json() # 獲取網頁信息的json格式數據

print(data)

except:

time.sleep(1)

continue

if data['status'] == 0:

if 'results' in data:

for item in data['results']:

name = item.get('name', 'default')

if 'location' in item:

lat = item['location']['lat']

lon = item['location']['lng']

else:

lat = item.get('location', 'default')

lon = item.get('location', 'default')

address = item.get('address', 'default')

province = item.get('province', 'default')

city= item.get('city', 'default')

area= item.get('area', 'default')

street = item.get('street_id', 'default')

detail = item.get('detail', 'default')

uid = item.get('uid', 'default')

# j_str = jname+','+str(jlat)+','+str(jlon)+','+jadd+'\n'

with open(path, 'a', encoding='utf-8') as f:

f.write(str(name) + ',' + str(lat) + ',' + str(lon) + ',' + str(address).replace(',', ';') + ',' + province + ',' + city

+ ',' + area + ',' + str(street) + ',' + str(detail) + ',' + str(uid) + ',' + url.replace(',', ';') + '\n')

# print('已經成功獲取第%d分之%d條url信息' % (times, url_count))

else:

print('no results')

pass

else:

ignor += 1

# for ii in range(0, 12):

# if ii < 12:

# print("已等待%d" % ii + "小時")

# time.sleep(3600)

# print("12小時等待結束")

print("已經忽略%d條url" % ignor)

continue

if __name__ == '__main__':

keyname=["中奇大廈","他她公寓","陽光大廈","凱風大廈","鑫成大廈"]

place="武漢"

ak="你在百度申請的AK"

savepath = r"E:\dosn2\save\data_download2.csv"

with open(savepath, 'a', encoding='utf-8') as f:

f.write("name" + ',' + "lat" + ',' + "lon" + ',' +"add" + ',' + "province" + ',' + "city"

+ ',' + "area" + ',' + "street" + ',' + "detail"+ ',' + "uid" + ',' + "url" + '\n')

get_info(keyname, place, ak, savepath)1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

總結

以上是生活随笔為你收集整理的python爬取百度地图数据_百度地图POI数据爬取的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。