조선왕조실록 식재료 및 경제, 상업, 농업 등 크롤링
이 사이트는 아래와 같이 기사별 URL이 제공된다. 따라서 필요한 내용을 크롤링하기 위하여 본 URL을 이용하면 간단하게 진행할수 있다.
====================================================================
기사 ID^권수^날짜^제목^기사 URL
kca_10104010_003^태종실록 1권^태종 1년 4월 10일 무진 3번째기사^전국에 황색의 사용을 금하다^http://sillok.history.go.kr/id/kca_10104010_003
kca_10701019_002^태종실록 13권^태종 7년 1월 19일 갑술 2번째기사^영의정부사 성석린이 국방대책 등의 시무 20조를 진달한 상서문^http://sillok.history.go.kr/id/kca_10701019_002
kca_10904030_001^태종실록 17권^태종 9년 4월 30일 임인 1번째기사^상왕이 병이 낫지 않아 인보를 화장사에 시주하려 했으나 임금이 말리다^http://sillok.history.go.kr/id/kca_10904030_001
-
-
===========================================================================
주의할 점은 첫줄의 제목을 제거해야 한다
1. 위 txt파일을 작업폴더(\ooo\\)로 이동. 예시로 제목을 행정이라 함
2. 작동하면 url_행정.txt와 result_행정.txt가 동시에 생성
======================================
from urllib.request import urlopen
import bs4
# name_list=["농업","물가","상업","수산업","식생활","풍속","금융"]
name_list=["행정"] #text 파일에서 첫줄 삭제후 작업시작
detail_address="C:\study\python-\OOO\\"
for name in name_list:
urls=[ ]
with open(f"{detail_address}{name}.txt",'r',encoding='utf-8') as file:
lines=file.readlines()
for i,line in enumerate(lines): #line = kzc_10709003_001^순종실록부록 5권^순종 부록 7년 9월 3일 양력 1번째기사^이왕직의 본년도 세비의 잉여금을 조선은행에 예금하다^http://sillok.history.go.kr/id/kzc_10709003_001
url=line.split("^")[-1] # http://sillok.history.go.kr/id/kzc_10709003_001
urls.append(url)
with open(f"{detail_address}urls_{name}.txt",'w',encoding='utf-8') as file:
for url in urls:
file.write(url)
with open(f"{detail_address}urls_{name}.txt",'r',encoding='utf-8') as file:
lines=file.readlines()
for i,line in enumerate(lines):
url=line
print(i)
source = urlopen(url).read() # 해당하는 url주소로 처리한다는 뜻
source_bs4 = bs4.BeautifulSoup(source,"html.parser") # html, bs4로 처리한다는 뜻
title1=source_bs4.select('#cont_area > div.cont_in_left.cont_full > div.page_tit.clear2.pl_20 > h3')[0].text #제목 selector
text1=source_bs4.select('#cont_area > div.cont_in_left.cont_full > div.ins_view_wrap.clear2 > div.ins_view.ins_view_left.w50_w50 > div > div > p') #내용 selector
with open(f"{detail_address}results_{name}.txt",'a',encoding='utf-8') as file: #append
file.write(f"{i}\n")
file.write(title1+"\n")
for t in text1:
file.write(t.text)
file.write("\n")