1. 개요
본 문서에는 봇 운용에 대하여 기본적으로 알아둘 내용을 적습니다. 본 문서는 강제력을 가지지 않으며, 기재된 정보는 위키 엔진이 업데이트되며 얼마든지 달라지거나 무의미해질 수 있습니다.2. 기본 안내
나무위키에서 봇 계정을 만들고 운용하기 위해서는, 별도의 봇 계정을 만들고 승인 절차를 받아야 합니다. 관련된 상세 규정은 나무위키:기본방침/이용자 관리 방침 문서의 4.2 문단에 있으며, 항상 본 문서보다 최신 규정을 참고하시기 바랍니다.봇 계정은 특수한 종류의 계정이 아니며, 일반적인 로그인한 사용자와 다르지 않습니다. 다만, 승인 시 엔진상으로는
api_access
권한을 부여받으며, 나무위키:사용 승인된 봇 계정 목록 문서에 기재됩니다.봇 계정은 신청시 생성해주는 것이 아니므로 신청자가 사전에 계정을 생성해 두어야 합니다. 계정 가입 시 별도의 이메일 주소가 필요할 수 있습니다.##
API 토큰은 내 정보의 API Token 페이지에서 발급할 수 있습니다.
3. 기타 운용시 주의사항
- 운영사에서는 1초에 요청 1회만 보내는 것을 권장하고 있으며, 실제로 이보다 빠르게 요청을 보낼 경우 서버에서 요청을 거부하거나 캡챠를 표시합니다. 방법이 없는 것은 아니나 양이 너무 많은 것이 아니면 준수하는 것을 권장하고, 양이 많다면 속도를 올리기 전에 문제 발생 소지를 잘 확인해보시기 바랍니다.
- the seed engine API 문서에 없는 기능은 내부 API를 사용하거나 브라우저를 자동화하여 구현할 수 있으나, 특성상 오동작할 여지가 크므로 이에 대하여 예외 처리를 잘 해두셔야 합니다.
- 기본적으로 the seed 엔진의 API 기본 엔드포인트는 위키 도메인에
/api
를 경로로 준 것으로, 나무위키에서는 본래https://namu.wiki/api
이고 이 경로도 동작하지만https://wiki-api.namu.la/api
를 권장한다고 운영사에서 밝힌 바 있습니다. 해당 접속 경로로는 API 요청만 가능하므로 API 요청 외의 동작을 하는 경우 적절히 대응해주어야 합니다. - 한 요청의 크기 제한은 약 1MiB로 추정됩니다. 한글을 포함한 문자열을 JSON으로 인코딩할 때 유니코드를 강제로 이스케이프하면 [1] 한글 하나 당 6바이트[2]로 변환되므로 한 요청에 최대 약 17만 자까지만 전송할 수 있어서 문서를 편집할 수 없는 경우가 종종 발생합니다. 문자를 UTF-8 그대로 넣으면 한글 한 글자 당 3바이트를 차지하여 chunking 없이도 한 요청에 약 35만 자까지 넣을 수 있고, 나무위키에 이보다 텍스트 용량이 큰 문서는 100개를 넘지 않습니다. 1MiB보다 큰 요청을 보내려고 하는 경우
invalid request body
오류를 받게 됩니다.# # - 역링크 정리시, 틀에서 참조하는 경우 역링크에 나타나지 않으므로 주의하여야 합니다. 특히 파일의 경우 잘 살펴보아야 합니다.
[1] Python
json.dumps()
에선 기본 옵션이고, requests.post()
의 json=
키워드 인자를 사용할 경우 이 기본 옵션이 그대로 사용됩니다.[2] \u
2자 + 16진수 4자