빅데이터 전문가 되기
Python을 활용한 Crawling (네이버 지식백과) 본문
키워드 검색을 통해 연관검색어, 검색어의 뜻에 대하여 알 수 있도록 지식백과를 Crawling해보겠습니다.
아래는 지식백과(naver)의 사이트 주소입니다.
지식백과 주소 :
네이버 지식백과
아이들도 이해할 수 있는 어린이 백과사전부터! 대학생 수준에 맞는 전문적인 지식까지! 다양하고, 신뢰성 있는 정보를 제공합니다.
terms.naver.com
저는 예시로 딸기를 키워드로 설정하여 해보겠습니다.
- 연관검색어와 딸기에 대한 각 사전에서의 뜻을 1,2,3으로 하여 가져오도록 하겠습니다.
- 내용에 대하여는 csv 파일로 저장하겠습니다.
👉 라이브러리 활성화
# 라이브러리 활성화
import requests
import csv
from bs4 import BeautifulSoup
👉 검색어와 url 지정
# 검색어와 url 지정
noun=input("검색어를 입력하세요. ")
print()
url=f"https://terms.naver.com/search.naver?query={noun}&searchType=&dicType=&subject="
response=requests.get(url)
soup=BeautifulSoup(response.text,"html.parser")
print(soup)
- url에서 키워드가 변경되는 곳에 format형으로 지정해줍니다.
- requests.get을 활용하여 url을 가져오고 soup를 통해 주소를 제대로 들고 오는지 확인합니다.
👉 개발자도구 활용
- 개발자 도구를 통하여 가져올 내용에 대하여 확인합니다.
- 연관검색어를 가져올 때는 <ul class="relate_search"> 를 가져오면 된다는 것을 알 수 있습니다.
- 딸기의 뜻에 대하여 각 class는 info_area로 지정되어 있습니다.
ul=soup.find("ul",{"class":"relate_search"})
info=soup.find_all("div",{"class":"info_area"})
- ul: 연관검색어를 가져오는 코드로 연관검색어는 하나이므로 find로 가져옵니다.
- info: 키워드에 대한 뜻을 가져오는 코드로 각 사전별로의 뜻을 가져올 것이므로 find_all로 가져옵니다.
👉 csv 파일로 저장
# 검색 결과를 문자열로 저장
result = [
["< 연관검색어 >",ul.get_text()],
["<",noun+"의 뜻① >",info[0].text.strip()],
["<",noun+"의 뜻② >",info[1].text.strip()],
["<",noun+"의 뜻③ >",info[2].text.strip()]
]
# 결과를 csv 파일로 저장
filename = noun + "_search_result.csv"
with open(filename, "w", encoding="cp949", newline="") as file:
writer = csv.writer(file)
writer.writerows(result)
print("검색 결과가", filename,"파일로 저장되었습니다.")
- 해당 폴더에 들어가게 되면 저장된 것을 확인할 수 있습니다.
'Python' 카테고리의 다른 글
Python을 활용한 Crawling (네이버 뉴스) (0) | 2023.07.02 |
---|---|
Python을 활용한 Wordcloud (네이버 뉴스) (0) | 2023.07.02 |
Python을 활용한 구구단 만들기(for문) (0) | 2023.07.02 |
Google Bigquery 데이터 적재 (0) | 2023.06.21 |
공공데이터 API 크롤링 (0) | 2023.06.21 |
Comments