국회도 정보화 시스템이 구축되어 있어서 법안을 누가 제안했고
본회의에서 찬성자와 반대자가 누군였는지 찾을 수가 있습니다. 한두개 법안에 대해서 별 어려움이 없습니다. 뉴스타파 에서 자체 판단하기로 20대 국회에서 통과된 일부 법안은 단순히 건수 늘리기 위한 법안으로 보고 D 등급으로 평가한
법안들이 있습니다. 이들 법안의 제안자가 누구인지 찾아 보려면 웹 스크래핑을 사용해야 합니다.
D 등급 법안이 391개나 되기 때문입니다.
http://likms.assembly.go.kr/bill/main.do 에 의안번호를 넣으면
<그림 1>
의안번호, 제안일자, 제안자,
문서, 제안회기, 제안이유 와 같은 기본 내용이
나오고 법안의 상세 내용은 “문서”에 따로 첨부되어 있습니다.
<그림2>
여기서는 법안의 제안자를 찾으려고 하는데 제안자가 단독인 경우는 드물고 공동 발의의 경우가 많습니다. 제안자 목록을 클릭하면 공동 발의자 의원 명단이 나옵니다.
<그림 3>
이 과정을 웹 스크래핑으로 자동화해야 합니다. 그림 2의 “제안자 목록”이 보이는 웹 페이지의 소스를 보면 아래와 같습니다.
<!-- <a href="javascript:ajaxShowProposerList('PRC_E1Y9P1O1L0Z7D1M7Q1N2I5B8O7X9V8');"> <img src="/bill/images/sub/btn_pp01.gif" alt="제안자 목록" /></a> <!-- layerpop -->
“제안자 목록”을 클릭하면 인수 billID를 넣어 java
script 함수인 ajaxShowProposerList()를 호출하는데 이 함수는
아래와 같이 정의되어 있습니다.
function ajaxShowProposerList(billId) { var url = pageContextRootPath + '/coactorListPopup.do'; var param = "?billId=" + billId; url += param; commonPopup(url, 830, 500); }
결국
billID를 포함시킨 아래
URL만 호출하면 특정 법안의 제안자 목록을 볼 수 있습니다.
https://likms.assembly.go.kr/bill/coactorListPopup.do?billId=PRC_E1Y9P1O1L0Z7D1M7Q1N2I5B8O7X9V8
이
페이지가 그림 3이고 발의의원 명단은 아래
html로 문장으로 되어 있으니
<p><strong> 발의의원 명단</strong></p> <a href="http://www.assembly.go.kr/assm/memPop/memPopup.do?dept_cd=9770960" target="_blank">김종회(무소속)</a> <a href="http://www.assembly.go.kr/assm/memPop/memPopup.do?dept_cd=9770931" target="_blank">강성호(자유한국당)</a>
아래
파이썬 문으로 명단을 추출합니다.
html = urlopen(…..) bsObj = BeautifulSoup(html, "html.parser") .. proposers = [] for persons in bsObj.findAll("a", {'target' : '_blank'}): count += 1 proposers.append(persons.get_text())
댓글 없음:
댓글 쓰기