참여연대 열려라국회 사이트(watch.peoplepower21.org) 크롤러로 왓치.피플파워 사이트를 왓치하는 왓치.왓치.피플파워 프로젝트입니다.
이 프로젝트의 기원은 코드포서울 Congress Report입니다.
- Sluggish Hackers 2번째 프로젝트로 ***팀과 협업
- 협업 내용은 이곳에서 확인할 수 있습니다
- 초기화
store := store.New()
crawlerService := crawler.New(store)
- 국회의원 목록 수집하기
crawlerService.FetchPeople()
- 본회의 목록 & 표결정보(optional) 수집하기
crawlerService.FetchSessions(true)
crawlerService.FetchSessions(false) // 표결정보 제외하고 수집하기
- 수집 후 표결정보 CSV로 꺼내기
exporter := exporter.New()
votes := store.GetVotes()
// Column Headers
rows := [][]string{
{"idx", "vote", "bill_idx", "bill_name", "turn", "status", "date", "name_kr", "party"},
}
for _, v := range votes {
rows = append(rows, []string{v.ID, v.Result, v.BillID, v.BillName, v.SessionTurn, v.Status, v.Date, v.PersonName, v.PersonParty})
}
exporter.CSV(rows, "20.csv")
// File "data/20.csv" is created!
- 국회의원별 표결 정보
- 국회의원 목록 & 세부정보
- 본회의 목록 & 세부정보
- 표결 정보를 위해 일부만 작업되어 있음
- 상임위원회 목록 & 세부정보
- 파일 유형
- CSV
- JSON
- 국회의원 관련
people_crawler
를 통해 페이지 수를 파악한 후 의원 목록을 수집person_crawler
를 통해 의원별 상세 정보를 수집
- 본회의 관련
sessions_crawler
를 통해 현재까지의 본회의 목록을 수집session_crawler
를 통해 본회의 상세 정보를 수집
- 표결 관련
session_crawler
를 통해 수집된 본회의 정보에서 본회의에서 처리된 안건 목록을 수집votes_crawler
를 통해 안건별 표결 정보를 수집. 표결 정보는 HTML 형태가 아닌 별도의 API를 통해서 수집. 이 떄 사용되는meetingbill_id
는 어떤 ID를 의미하는 것인지 특정하지 못해서Javascript
코드 내에서 찾아내 활용하는 중.
- CSV