Python

[Python] Web scrapping

SangRok Jung 2022. 9. 27. 23:16
반응형

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