□ 아래와 같은 형식으로 데이터를 표시하는 웹사이트 크롤링 후 크롤링한 데이터를 데이터프레임으로 저장해보자
#라이브러리 호출
from bs4 import BeautifulSoup
from urllib.request import Request, urlopen
import pandas as pd
#사이트
url_base = 'http://www.chicagomag.com'
url_sub = '/Chicago-Magazine/November-2012/Best-Sandwiches-Chicago/'
html = urlopen(url)
soup = BeautifulSoup(html, "html.parser")
#크롤링 타겟태그 선택
target_area = soup.select('div.sammy')
#크롤링 데이터를 담을 리스트 생성
num_list = list()
menu_list = list()
cafe_list = list()
url_list = list()
#select으로 추출하면 값이 리스트이므로 이를 반복문으로 특정 데이터 추출
for index, v in enumerate(target_area):
index +=1
num = index
#a태크 추출 및 split & 인덱스번호 활용하여 저장
cafe = v.select_one('a').text.split('\n')[1]
#b태크 b태그 하위 텍스트 저장
menu = v.select_one('b').text
#a태그의 href 속성 추출
url_link = 'https://www.chicagomag.com/Chicago-Magazine' + v.select_one('a')['href']
#위에서 생성한 리스트별 데이터 저장
num_list.append(num)
menu_list.append(menu)
cafe_list.append(cafe)
url_list.append(url_link)
#데이터 프레임 생성 : 딕셔너리 형태('컬럼' : '데이터값')로 데이터프레임 생성
good_food = pd.DataFrame({'Rank': num_list, 'Menu': menu_list, 'Cafe': cafe_list, 'URL': url_list})
good_food.head()
'Python > Python_Crawling' 카테고리의 다른 글
Selenium : 기본 옵션세팅 (0) | 2024.02.18 |
---|---|
Selenium 개요 (0) | 2024.02.14 |
쿠팡 : 상품 검색결과 중 로켓배송인 상품 크롤링 (0) | 2024.02.13 |
CGV 무비차트 크롤링 (1) | 2024.02.11 |
SSG 이벤트 크롤링 : select, find_all(string=True) (1) | 2024.02.09 |