그래서 파이썬으로 MSDS를 전부 다운받을 수 있도록 코드를 만들었다.
한국산업안전보건공단의 DB를 사용한다.
1. 코드
코드는 GitHub으로 공유하는 것이 좋을 것 같아 링크로 대체하였다...
CAS_to_MSDS.py
2. 컨셉
일단 CAS No. 목록을 보유하고 있어야 한다.
CAS No.를 한국산업안전보건공단에서 검색해서 msds_id를 얻는다.
msds_id로 pdf 파일을 다운로드 받는다.
3. 원리
get_msds_id 함수에서 cas_no를 받아서
산업안전보건공단에서 자체적으로 사용하는 msds_id를 찾아낸다.
이 msds_id를 토대로 get_pdf 함수에서 pdf 파일을 다운받는다.
http://msds.kosha.or.kr/kcic/msdsdetail.do 에서 인쇄 또는 저장을 누르면
포함할 정보의 항목을 설정할 수 있고,
해당 설정은 jsp에게 data로 post함으로써 설정할 수 있다.
이 부분에서 0과 1로 표현할 수 있는 듯하다.
PDF 파일을 다운받기 위해선 AICipher라는 값이 필요하다.
왜 필요한진 모르겠다.
하지만 필요하기 때문에 찾아보면
아까 그 jsp 인쇄 페이지에서 자바스크립트로 처리하고 있음을 알 수 있다.
또 왜인진 몰라도.. 다 비슷하게 생겼는데 엄밀히는 다르게 생겼다.
그 중 callParameter 변수를 사용한다.
RegEx로 잘라 requests.post할 때 data에 붙여서 보낸다.
여기에서 받는 리스폰은 PDF 파일이므로, 바이너리 파일로 저장해줘야 한다.
4. 사용법
cas_no를 for 문으로 대입시켜가면서
목록을 하나하나 돌도록 추가 코드를 짜서 사용하면 된다.
다운로드 경로는 '다운로드 완료' 글자 위에 open 함수에서 정의하면 된다.
5. 업데이트 내역:
2021/08/17 - 요청 주소 최신화 및 클래스화 진행
안녕하세요. 블로그 글 도움 많이 받았습니다.
답글삭제혹시 PDF가 아닌 엑셀파일로도 저장이 가능할까요?
여러 방법을 시도해보았는데 도저히 안되어서 질문드립니다