https://namu.wiki/w/%EB%82%98%EB%AC%B4%EC%9C%84%ED%82%A4:%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8/%EC%97%AD%EB%A7%81%ED%81%AC%20%EA%B0%9C%EC%84%A0/%EC%A7%84%ED%96%89%20%EC%83%81%ED%99%A9?from=%EC%97%AD%EB%A7%81%ED%81%AC%20%EC%A0%95%EB%A6%AC#s-2.3


코로나
N/A
코로나바이러스
코로나바이러스감염증-19의 병원체일 경우 SARS-CoV-2로, 관련 전염병은 코로나바이러스감염증-19로 대체.


문맥에 따른 다른 링크로 옮겨야 되는 문제.


나는 Selenium으로 Chrome을 통해 위키 페이지를 자동으로 켜주고 크롬 창에서 ctrl+F로 대체하려는 링크를 찾은 뒤에 콘솔 상에서 Y를 입력하면 대체, N을 입력하면 대체하지 않도록 구현하고자 한다.


기존에 A 링크를 B 링크로 일괄 변경하는 메서드는 이미 마련해두었으니, 이 메서드를 개량해서 [특정한 경우(predicate)]에 링크를 대체하지 않도록 수정한다. 물론 이 특정한 경우(predicate)란, 내가 콘솔 창에서 y를 입력했을 때를 의미한다.


위 메서드의 호출부의 모습이다. 아직 고쳐할 것이 많다.

1. 위키 페이지를 가져올 때마다(OnGetEditSuccessfully) ctrl f를 시키기

첫번째 이미지에서는 드러나지 않았지만, BacklinkReferers는 역링크를 만들어내는 링크 구문들을 반환한다. 링크 구문 그 자체를 알려면 각 문서를 나무위키 API를 이용해서 알아내야 하는데, BacklinkReferers의 반환값을 foreach로 읽으면 알아서 해준다.


SeedViewer class는 ChromeDriver를 에워싼 클래스로, 문맥을 확인하기 위해 조종할 크롬을 대변한다. ShowView는 해당 문서로 이동, SearchBox는 크롬 창에서 ctrl+f를 누르면 나오는 검색창을 띄워준다.


2. 링크 구문을 확인할 때마다(predicate: OnCheck) 링크를 대체할 지 말 지 결정하기

OnCheck 지역 함수에서 구현할 예정이다. Console 창에서 입력을 받고, 그것이 y라면 true를, n이라면 false를 반환할 것이다. 입력 직후 조종하는 크롬창에 엔터키를 입력시켜서 다음 링크의 위치를 띄울 것이다.


...

이러면 될 것 같았는데, [[위치|표시]]처럼 링크와 표시 텍스트가 다를 수도 있기 때문에 단순하게 ctrl+f로 찾으면 안 되고, 개발자 도구 상에서 Xpath로 찾아야 한다. 셀레니움 ChromeDriver가 이거까지 해주면 좋겠는데...





토이 프로젝트 만드는 중에 설계가 잘 안되서 글로 조금 써보고 만들어 보려고 올렸음. 코드 설명 받고 싶거나 이해 안되는 거 있으면 답해드림. ㅇㅇ