Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- deeplearning
- MachineLearning
- HTML
- 파이썬
- 비지도학습
- 자연어분석
- fastapi #python웹개발
- 판다스 데이터정렬
- konlpy
- 파이토치기본
- pytorch
- 챗gpt
- 머신러닝
- 사이킷런
- sklearn
- Python
- OpenAIAPI
- 파이썬웹개발
- chatGPT
- 파이토치
- NLP
- programmablesearchengine
- 랭체인
- 딥러닝
- pandas
- fastapi #파이썬웹개발
- langchain
- python 정렬
- 판다스
- fastapi
Archives
- Today
- Total
Data Navigator
[카카오 지도] 다음 뉴스 기사를 분석하여 식신로드 맛집 정보 추출 후 지도에 표시하기 본문
DataCollectingProject
[카카오 지도] 다음 뉴스 기사를 분석하여 식신로드 맛집 정보 추출 후 지도에 표시하기
코딩하고분석하는돌스 2021. 1. 16. 14:19In [18]:
import requests
from bs4 import BeautifulSoup
import folium
import re
In [19]:
url = 'https://www.wikitree.co.kr/articles/217101'
response = requests.get(url)
text = response.text
soup = BeautifulSoup(text)
In [20]:
# 가게이름 찾기
restaurent_name = soup.select('div.article_body strong')
res_names = []
for names in restaurent_name:
if '회' in str(names):
names2 = names.text
names3 = names2[3:].lstrip()
res_names.append(names3)
res_names[13] = '155회 영화루'
res_names[19] = '225회 애성회관'
In [21]:
# 가게 전화번호 찾기
# tel_p = re.compile('\d{2,3}-\d{3,4}-\d{4}')
# tel_list = []
# for item in restaurent_address:
# str_item = str(item)
# info = tel_p.findall(str_item)
# if info:
# tel_list.append(info)
# for list in tel_list:
# print(list)
# BeautifulSoup 에 있는 find_all 함수의 속성으로 정규표현식을 사용
# tel_p = re.compile('\d{2,3}-\d{3,4}-\d{4}')
# tel_data = soup.find_all(string=tel_p)
# for list2 in tel_data:
# print(list2)
In [22]:
# 가게 주소 및 전화번호 찾기
restaurent_address = soup.select('div.article_body p')
rest_addresses = []
rest_tel =[]
for i in restaurent_address:
if '서울' in str(i):
add1= i.text
add2 = add1.replace('서울','서울시')
add3 = add2.replace('서울시시', '서울시')
rest_addresses.append(add3)
elif '종로구' in str(i):
add4 = i.text.replace('종로구', '서울시 종로구')
add5 = add4[0:-11]
rest_addresses.insert(17,add5)
elif '02' in str(i):
tels = i.text.replace('\xa0','')
rest_tel.append(tels)
del rest_addresses[0]
In [23]:
import pickle
In [24]:
app_key = 'c783e490bd8b307ed6137b9696ef7b85'
app_key = 'KakaoAK ' + app_key
In [25]:
area_codes = []
b=0
for addre in rest_addresses:
b = b+1
address = addre
url = 'https://dapi.kakao.com'
url = url + '/v2/local/search/address.json'
params = { 'query': address }
headers = { 'Authorization': app_key }
response = requests.get(url, headers=headers, params=params)
area_code = response.json()
# print(b,"x: "+area_code['documents'][0]['road_address']['x'], "y: "+area_code['documents'][0]['road_address']['y'])
x = area_code['documents'][0]['x'] #경도
y = area_code['documents'][0]['y'] #위도
# print(b,"위도:{0},경도:{1}".format(y,x))
code = (y,x)
area_codes.append(code)
In [31]:
foodload_list = list(zip(res_names,rest_tel,rest_addresses,area_codes))
In [27]:
with open('foodload.pkl','wb') as f:
pickle.dump(foodload_list, f)
In [33]:
with open('foodload.pkl','rb') as f:
data = pickle.load(f)
In [29]:
import folium
In [45]:
map = folium.Map(location= (area_codes[0][0], area_codes[0][1]), zoom_start=12)
for i in range(len(area_codes)):
# print(area_codes[i][0],area_codes[i][1])
folium.Marker((area_codes[i][0],area_codes[i][1]), popup=res_names[i], icon=folium.Icon(color='red', icon='flag')).add_to(map)
map.save("food_map.html")
map
Out[45]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [ ]:
'DataCollectingProject' 카테고리의 다른 글
K wether에서 날씨 지수 정보 추출하기 (0) | 2021.01.16 |
---|---|
[공공데이터 수집] 전국 치킨집 자료 수집 - 전국 상권 정보 API 활용 (0) | 2021.01.16 |