제3장: 정규표현식

Wikipedia의 페이지 내용을 아래와 같은 형식으로 저장한 파일 enwiki-country.json.gz이 있다.

  • 한 행에 한 페이지에 대한 정보가 JSON 형식으로 저장되어 있다.
  • 각 행에는 페이지 제목이 “title” 키에, 페이지 본문이 “text”키로 객체 정의가 되어있고, 그 객체가 JSON 형태로 저장되어 있다.
  • 파일은 gzip으로 압축되어 있다.

20. JSON 데이터 읽기Permalink

Wikipedia 페이지의 JSON 파일을 불러와 “영국”에 관한 기사 본문을 표시하시오. 문제 21-29는 여기서 추출한 기사 본문을 이용하여 푸시오.

21. 카테고리명을 포함한 행을 추출Permalink

본문 중에서 카테고리명을 정의하는 행을 추출 하시오.

22. 카테고리 이름 추출Permalink

페이지 카테고리 이름을 (행 단위가 아닌 카테고리 이름으로) 추출하시오.

23. 섹션 구조Permalink

페이지에 포함되어 있는 섹션명과 그 깊이를 (예를 들어, “== 섹션 명 ==” 이면 깊이가 1) 구하시오.

24. 파일 참조 추출Permalink

페이지 내용에 참조되어 있는 모든 미디어 파일을 추출하시오.

25. 템플릿 추출Permalink

페이지 내용 중 “country”에 해당하는 Infobox의 필드명과 값을 추출하여 사전 오브젝트로 보존하시오.

26. 강조 마크업 제거Permalink

25번의 풀이에 이어서, 템플릿 값에서 Media Wiki의 강조 마크업(약한 강조, 강조, 강한 강조 모두)을 제거하고 텍스트로 변환하시오. (참고: 위키문법 요약))

27. 내부 링크 제거Permalink

26번의 풀이에 이어서, Media Wiki의 내부 링크 마크업을 제거하고 텍스트로 변환하시오. (참고: 위키문법 요약))

28. MediaWiki 마크업 제거Permalink

27번 풀이에 이어서, Media Wiki 마크업을 최대한 제거하여, 깨끗한 평문으로 된 국가 정보 텍스트를 만드시오.

29. 국기 URL 추출Permalink

Infobox 내용을 이용하여 국기 이미지의 URL을 구하시오. (힌트: MediaWiki APIimageinfo를 호출하여 파일참조를 URL로 변환할 수 있다.)