Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Archives
Today
Total
관리 메뉴

RUBY

[WebData][chicago] 3. 50개 가게에 대해 정보 추출 본문

데이터 분석/EDA_웹크롤링_파이썬프로그래밍

[WebData][chicago] 3. 50개 가게에 대해 정보 추출

ruby-jieun 2023. 2. 5. 18:54

 

 

 

 

웹 데이터 수집하고 정리하기
시카고 맛집 데이터 분석
3. 50개 가게에 대해 정보 추출

 


 

 

 

 

1.

 - 필요한 내용을 담을 빈 리스트를 만든다.
 - 리스트로 하나씩 컬럼을 만들고, DataFrame으로 합칠 예정이다.

 - div의 sammy 태그를 가져온다.soup.select(".sammy")

from urllib.parse import urljoin 

url_base = "http://www.chicagomag.com"

rank = [] 
main_menu = [] 
cafe_name = [] 
url_add = [] 

list_soup = soup.find_all("div", "sammy")

for item in list_soup: 
    rank.append(item.find(class_="sammyRank").get_text())
    tmp_string = item.find(class_="sammyListing").get_text() 
    main_menu.append(re.split(("\n|\r\n"), tmp_string)[0])
    cafe_name.append(re.split(("\n|\r\n"), tmp_string)[1])
    url_add.append(urljoin(url_base, item.find("a")["href"]))
    
len(rank), len(main_menu), len(cafe_name), len(url_add)

 

 

 

2. 아주 잘 가져온다.

rank[:5]
main_menu[:5]
cafe_name[:5]
url_add[:5]

 

 

 

 

3. 50개 자료에 대해 랭킹, 메뉴, 가게이름, URL까지 모두 정리한다.

import pandas as pd 

data = {
    "Rank": rank, 
    "Menu": main_menu,
    "Cafe": cafe_name,
    "URL": url_add, 
}

df = pd.DataFrame(data)
df.tail()

 

 

 

4. 칼럼 순서를 변경한다.

 - Rank. Cafe, Menu, URL 순서이다.

df = pd.DataFrame(data, columns=["Rank", "Cafe", "Menu", "URL"])
df.tail()

 

 

5. 만든 데이터를 저장하자!

df.to_csv(
    "../data/03. best_sandwiches_list_chicago.csv", sep=",", encoding="utf-8"
)
Comments