개요
크롤러에서 robots.txt에 접근하기 위해 보통 robotparser를 쓴다.
이를 사용해서 www.mk.co.kr의 robots.txt에 접근해보려 했다.

그림처럼, 아예 robots.txt에 접근하지 못한다고 한다.
Issue
1. 에러메시지
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)>
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)
During handling of the above exception, another exception occurred:
File "/Users/jinha/workspace/GitHub/web_crawler_study/url_filter.py", line 26, in is_allowed
rp.read() # robots.txt 파일 읽기 시도
^^^^^^^^^
File "/Users/jinha/workspace/GitHub/web_crawler_study/crawler.py", line 62, in run
if not url_filter.is_allowed(url):
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jinha/workspace/GitHub/web_crawler_study/crawler.py", line 85, in <module>
run()
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)>
ssl 인증에 실패했다고나온다. 파이썬에서 요청을 보낼 때 이 인증서를 사용하는 듯 하다.
2. 파이썬의 루트 인증서를 업데이트해준다.

위 certificates.command 파일을 실행해줌으로써 파이썬의 인증서를 갱신할 수 있다.
후기

허무함은 남지만 요청을 보낼 때 이런 인증서를 사용해서 보낸다는 사실을 새로 알게 됐다.
다른 버전의 파이썬을 사용할 때 비슷한 문제가 또 발생할 수도 있을 것 같다. 그때는 빠르게 해결할 수 있을 것이다.