반응형
from bs4 import BeautifulSoup
from selenium import webdriver
import time, sys
# query_txt = input('크롤링할 키워드는 무엇입니까?: ')
#Step 2. 크롬 드라이버 (혹은 사파리) 사용 웹 브라우저 실행
path = "./Desktop/chromedriver"
driver = webdriver.Chrome(path) # mac은 Safari( )
driver.get("https://korean.visitkorea.or.kr/main/main.html")
time.sleep(1)
driver.find_element_by_id("inp_search").click()
element = driver.find_element_by_id("inp_search")
element.send_keys("가을 여행")
enter = webdriver.Keys.ENTER
element.send_keys(enter)
time.sleep(1)
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
content_list = soup.find('ul', class_ = 'list_thumType type1')
# 번호, 지역, 내용, 태그
no, no2, location2, contents2, tags2 = 1, [], [], [], []
for i in content_list :
try :
contents = i.find('div', class_ = 'tit').get_text()
location = i.find('div', class_ = 'service').get_text()
tag = i.find('p', class_ = 'tag_type').get_text()
no2.append(no)
location2.append(location.strip())
contents2.append(contents.strip())
tags2.append(tag)
no += 1
except AttributeError as err:
pass
# 출력 결과를 표(데이터 프레임) 형태로 만들기
import pandas as pd
korea_trip = pd.DataFrame()
korea_trip['번호'] = no2
korea_trip['지역'] = location2
korea_trip['내용'] = contents2
korea_trip['태그'] = tags2
korea_trip
# korea_trip 데이터프레임의 인덱스를 번호로 변경
korea_trip.set_index('번호', inplace=True)
# (옵션) 5번 지역을 DMZ로 변경
korea_trip.loc[5, '지역'] = 'DMZ'
반응형
'Python' 카테고리의 다른 글
[Python] pandas 내장 그래프 도구 (0) | 2022.09.27 |
---|---|
[Python] 데이터 확인 (0) | 2022.09.27 |
[Python] Pandas (0) | 2022.09.27 |
[Python] 파일 저장 (0) | 2022.09.27 |
[Python] numpy 내적연산 (1) | 2022.09.24 |