공부/AI

파이썬 크롤링 연습

글로벌디노 2024. 11. 21. 19:36

 

 

파이썬 라이브러리를 활용해서 크롤링을 연습해보자

 

사용

jupyter notebook

BeautifulSoup

selenium

 

크롤링 사이트

https://globaldino.tistory.com/77

 

정올 문제풀이 - 단계별문제 Python(~3판) 반복제어문1

정올문제링크 문제집 - JUNGOLimage 사진 변경jungol.co.kr 연습문제 1 #9550for n in range(10, 21): print(n, end=" ")  자가진단 1 #821for i in range(1, 16): print(i, end=' ')  연습문제 2 #9551num = 1sum = 0while num   자

globaldino.tistory.com

 

 

구현할 내용

 

1. 위 블로그에서 문제풀이 정보를 크롤링해서 가져온다

2. 문제 정보들을 출력하고 번호를 입력받는다

3. 입력받은 번호에 해당하는 문제풀이 코드를 출력한다

4. 없는 번호를 입력받으면 "잘못된 번호 입력" 을 출력한다

5. 2~4 를 반복하되 0을 입력받으면 "Done" 을 출력하고 종료한다

 
구현 코드 Python
from selenium import webdriver
from bs4 import BeautifulSoup

driver = webdriver.Chrome()
driver.implicitly_wait(3)

driver.get("https://globaldino.tistory.com/77")

page = driver.page_source
bs_obj = BeautifulSoup(page, "html.parser")

p_contents = bs_obj.find_all("p")

q_title_list = []
for item in p_contents:
    if '#' in item.text:
        q_title_list.append(item.text)
        
code_contents = bs_obj.find_all("code")

code_list = []
for item in code_contents:
    code_list.append(item.text)
    
q_dic = {}
for i in range(len(q_title_list)):
    title, num = q_title_list[i].split('#')
    # print(title.strip(), num)
    title = title.strip()
    q_dic[num] = (title, code_list[i])

while True:
    for item in q_dic.items():
        print("%s\t%s" % (item[0], item[1][0]))
    input_str = input("번호입력 (종료:0) : ").strip()
    if input_str == "0":
        break
    if input_str in q_dic:
        data = q_dic[input_str]
        print(f"\n{data[0]}\n{data[1]}\n")
    else:
        print("\n잘못된 번호 입력\n")

print("Done")

driver.close()

 

 

 

반응형