사용자:하늘/sample

< 사용자:하늘
하늘 (토론 | 기여)님의 2021년 10월 11일 (월) 23:19 판

100자 로드하는데 0.5초

2000자 로드 : 3초 시간 초과!

한자 목록 분리 계획

가나다라마바사아자차카타파하로 분리

각 초성 별로

가 거 고 구 그 기 분리

ㅏ ㅓ ㅗ ㅜ ㅡ ㅣ

세부적으로

위키 특성상 한자 음별로 나열하는 건 본래의 역할에선 무의미 단순 한자 목록이라는 의미는 있음. 한자는 검색해서 찾으면 되니까.

가나다라마바사아자차카타파하 X 가 개 갸 걔 거 게 겨 계 고 과 괘 괴 교 구 궈 궤 귀 규 그 긔 기 = 294개 조합. 강희자전 4만 7035자 수록. 이론상 한 문서마다 154개

가나다라마바사아자차카타파하 X 가 거 고 구 그 기 = 84개 한 문서당 500자

저 많은 한자는 뜻 모르는 한자, 이체자까지 수록하고 있어서 실제로는 더 적을거고 현실적으로 저렇게 많은 한자를 실을 수는 없음...

어느 정도 규모가 커지면 음으로 찾기를 음별 목록으로 이전.

위키백과는 한자가 부수 말고는 거의 문서가 없음. 위키백과와는 차별화가 확실한데 문제는 나무위키...

문서 수를 확보하는 것이 급선무.

한자 음별 목록으로 문서를 만들면 마우스로 쉽게 접근이 가능하도록 틀을 만들어 두는게 좋을 것 같다.

이럴 때 봇을 한번 써볼까

api query -> gsub replace 한 문장 씩 목록 만들기.

아하

{{한자 목록
|漢|한수|한
|漢|한수|한
|漢|한수|한
|漢|한수|한
}}

result 한수〔한〕

상용한자 판별은 속도에 영향이 없어서 사용해도 됨.

스크립트 오류: "사용자:cerulean" 모듈이 없습니다.

좋아

- 주기적으로 업데이트 되는 한자 목록입니다. 직접 추가해주셔도 됩니다. 방금 만든 문서는 목록에 없을 수도 있습니다. 목록 업데이트는 1일 2일 간격으로 이루어집니다. -

목표 : 원클릭으로 업데이트 하는 스크립트 만들기

어.. 될지는 모르겠다.

import requests
import re
S = requests.Session()
URL = "https://librewiki.net/api.php"
PARAMS = {
	"action": "query",
	"format": "json",
	"list": "categorymembers",
	"utf8": 1,
	"formatversion": "2",
	"cmtitle": "분류:한자/문자",
	"cmprop": "title",
	"cmnamespace": "1600",
	"cmtype": "page",
	"cmlimit": "max",
	"cmsort": "sortkey"
}
DATA = S.get(url=URL, params=PARAMS).json()
PAGES = DATA['query']['categorymembers']

PARAMS = {
	"action": "query",
	"format": "json",
	"prop": "revisions",
	"formatversion": "2",
	"rvprop": "content",
	"rvslots": "*"
}
for page in PAGES:
	hanja = page['title'].split('/')[1]
	PARAMS["titles"] = "시리즈:리브레 한자사전/"+ hanja
	DATA = S.get(url="https://librewiki.net/api.php", params=PARAMS).json()
	PAGE = DATA['query']['pages'][0]['revisions'][0]['slots']['main']['content']
	mean = re.search('뜻 = (.+?)\n', PAGE).group(0)[3:-1].strip()
	sound = re.search('소리 = (.+?)\n', PAGE).group(0)[4:-1].strip()
	print('|'+ hanja +'|'+ mean +'|'+ sound)

한번 여쭤봐야겠다.