1. 프로젝트
- 시카고 샌드위치 맛집을 가져오자!
2. Open
- Open!
from urllib.reqeust import Request, urlopen
from bs4 import BeautifulSoup
url = ~~~
req = Request(url, headers={'User-Agent' : 'Chrome'})
html = BeautifulSoup(req,'html.parser')
3. 필요한거 가져오기
temp_one = soup.find_all('div','sammy')
- 랭크 가져오기
rank = temp_one.find('div',class_='sammyRank').text
rank = temp_one.select_one('div.sammyRank).text
- 메뉴명 가져오기
menu = temp_one.find('div',class_='sammyListing').text
menu = temp_one.select_one('div.sammyListing').text
- 링크
link = temp_one.find('a').get('href')
link = temp_one.select_one('a')['href']
- 메뉴와 카메명 가져오기
1. re.split(a,b)을 사용하요 ',.' 제거
- a: 지울 것 , b : 변수
2. re.search('\$\d+\.(\d+)?, 변수명).group()
- $ 표시가 있고 숫자가 있고 그 뒤에 . 이 있다 뒤로는 숫자가 있을 수도 있다
3. 저장하기
- 반복문을 사용하여 저장!
4. 가격 주소 가져오기
5. 지도 시각화
- 목적
- 현재 가게명을 가지고 있다
- 가게명을 googlemaps로 넣어서 위도 경도를 찾아주고 이를 새로운 df로 만들어준다
- 위도 경도를 바탕으로 marker 해준다
- 코드로 정리하기
import folium
import pandas as pd
import googlemaps
import numpy as np
lat = []
lng = []
for idx, row in df.iterrows():
if now row['Address'] == 'Multiple loaction':
target_name = row['Address'] + ',' + 'Chicago'
gmaps_output = gmaps.geocode(target_name)
tmp = gmaps_ouput[0].get('geometry')
lat.append(tmp['location']['lat'])
lng.append(tmp['location']['lng'])
df['lat'] = lat
df['lng'] = lng
mapping = folium.Map(location=[~~~,~~~],zoom_start=11)
for idx, row in df.iterrows():
if not row['Address'] == 'Multiple location':
folium.Marker(row['lat'],row['lng'], popup = row['cafe']).add_to(mapping)