조선왕조실록 식재료 및 경제, 상업, 농업 등 크롤링

 

이 사이트는 아래와 같이 기사별 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")

+ Recent posts