게시글
질문&답변
새로운 조달청 버전으로 다시 알려주실 수 있을까요?
안녕하세요? daniel.na님... 조달청 바뀐 API 내용을 '부록'에 추가하였습니다. 부족하지만, 도움이 되시길 바라겠습니다.https://inf.run/32xru 감사합니다.
- 0
- 4
- 105
질문&답변
새로운 조달청 버전으로 다시 알려주실 수 있을까요?
안녕하세요? daniel.na님..송구하게도 일정 때문에, 이번 달에 추가하기는 좀 어려울 것 같습니다.5월 초 연휴 기간에(연휴가 있어 다행입니다 ^^) 정리해서 업데이트 해보겠습니다. 불편을 드려 죄송합니다.- 웹 페이지 수집에서 POST 방식 추가 학습한 후 조달청 웹페이지 수집- 2024년 12월 갱신된 조달청 API에 맞게 API 통신 수정크게는 이렇게 2가지 업데이트를 진행할 계획입니다.감사합니다.
- 0
- 4
- 105
질문&답변
함수를 이용한 페이징 처리_함수 오류
안녕하세요? heejk1226님 올려주신 화면을 보기로는... 글씨가 더 크게보이는데요.전각문자라고 하는 형태로 입력이 되어서 변수명을 잘 인식하지 못하는 것 같습니다.참고 : https://ohhohohong.tistory.com/entry/%EC%88%AB%EC%9E%90-%EC%98%81%EB%AC%B8%EC%9D%B4-%ED%81%AC%EA%B2%8C-%EC%A0%81%ED%9E%88%EB%82%98%EC%9A%94-%EC%A0%84%EA%B0%81-%EB%B0%98%EA%B0%81-%ED%99%95%EC%9D%B8%ED%95%B4%EB%B3%B4%EC%84%B8%EC%9A%94 위 내용처럼 전각, 반각을 바꿔서 다시 입력해보시거나, 메모장 같은데서 같은 내용을 입력해보시고, 이 내용을 복붙해서 다시 시도해보시는 것을 추천합니다.성공하시길 바랍니다. 감사합니다.
- 0
- 2
- 72
질문&답변
7강-삭제관련 내용
추가 의견이 없으셔서 해결로 상태변경하겠습니다. 감사합니다.
- 0
- 3
- 82
질문&답변
테이블 자료 불러오기 오류
아래 heejk1226님께서 알려주셔서, 오류 부분 확인했습니다.다음 뉴스가 개편을 하면서 HTML구조와 URL이 바뀌어서 발생한 문제였고,1강에 보시면 첨부자료에 수정된 파일을 올려두었습니다.(https://www.inflearn.com/courses/lecture?courseId=335249&type=LECTURE&unitId=249289&tab=curriculum&subtitleLanguage=ko)URL이 바뀌었기 때문에 daum사이트에서 현재 URL을 사용하여 데이터를 수집하시면 정상적으로 테스트하실 수 있습니다. 감사합니다. 변경된 다음 뉴스 URL : https://search.daum.net/search?w=news&nil_search=btn&DA=NTB&enc=utf8&cluster=y&cluster_page=1&q=%EC%9D%B4%EC%8A%A4%EB%9D%BC%EC%97%98+%EC%A0%84%EC%9F%81변경된 다음 뉴스 최신순 URL : https://search.daum.net/search?w=news&nil_search=btn&DA=STC&enc=utf8&cluster=y&cluster_page=1&q=%EC%9D%B4%EC%8A%A4%EB%9D%BC%EC%97%98+%EC%A0%84%EC%9F%81&p=1&sort=recency
- 0
- 3
- 107
질문&답변
7강-삭제관련 내용
안녕하세요? heejk1226님. 다비입니다.조달청 강의가 제공되지 못한 점 죄송하게 생각합니다.그리고, 한국은행 금융규제같은 수집처 내용을 제안해주신 것에 감사드립니다. 사실 조달청 부분은 웹수집과 API수집을 좀 더 연습하시기 바라는 마음에 포함한 부분이라서, 다른 챕터를 잘 따라하셨다면, 한국은행 금융규제와 같은 다른 웹페이지 API도 도전해보실 수 있는 실력을 가지고 계시리라 생각합니다. 조달청 API는 최근 재정비 되는 것으로 알고 있습니다. Web수집은 이전에 제가 테스트하고 답변드린 내용이 있어 아래에 링크 공유드립니다.https://www.inflearn.com/community/questions/1481879/%EB%82%98%EB%9D%BC%EC%9E%A5%ED%84%B0-url-%EC%88%98%EC%A7%91 한국은행 금융규제 관련해서는 본 강의 범위 밖의 내용이긴 합니다만, 구체적인 URL을 알려주시면 같이 방법을 찾아보겠습니다. 감사합니다.
- 0
- 3
- 82
질문&답변
테이블 자료 불러오기 오류
안녕하세요? 서형준님. 다비입니다. 혹시 어느 챕터를 진행하고 계신 것인지 알려주시면 보다 빠른 확인 가능하겠습니다. 감사합니다.
- 0
- 3
- 107
질문&답변
나라장터 URL 수집
POST로 바뀌면서 API체계를 따라가다 보니 내용이 많이 복잡해졌습니다. 참고하실 수 있도록 아래에 코드 추가해드립니다. 시기를 보아서 이 부분은 강의에서 내리거나 update하도록 하겠습니다.조달청API도 3개월 후에 정지된다는 메일을 받은 적이 있는데요. 안정성을 고려해서 조치하겠습니다. 미리 조치하지 못해 죄송합니다. POST통신을 하게 되면Header값처럼 별도로 POST통신에 사용하는 값을 전달해주어야 데이터에 접근할 수 있습니다. 나라장터의 경우 이 항목이 매우 많아 코드가 복잡함을 양해해주시기 바랍니다. let Payload = Text.ToBinary( "{""dlBidPbancLstM"":{""untyBidPbancNo"":"""",""bidPbancNo"":"""",""bidPbancOrd"":"""",""prcmBsneUntyNoOrd"":"""",""prcmBsneSeCd"":""0000 조070001 조070002 조070003 조070004 조070005 민079999"",""bidPbancNm"":""인공지능"",""pbancPstgDt"":"""",""ldocNoVal"":"""",""bidPrspPrce"":"""",""ctrtDmndRcptNo"":"""",""dmstcOvrsSeCd"":"""",""pbancKndCd"":""공440002"",""ctrtTyCd"":"""",""bidCtrtMthdCd"":"""",""scsbdMthdCd"":"""",""fromBidDt"":""20241208"",""toBidDt"":""20250107"",""minBidPrspPrce"":"""",""maxBidPrspPrce"":"""",""bsneAllYn"":""Y"",""frcpYn"":""Y"",""rsrvYn"":""Y"",""laseYn"":""Y"",""untyGrpGb"":"""",""dmstNm"":"""",""pbancPicNm"":"""",""odnLmtLgdngCd"":"""",""odnLmtLgdngNm"":"""",""intpCd"":"""",""intpNm"":"""",""dtlsPrnmNo"":"""",""dtlsPrnmNm"":"""",""slprRcptDdlnYn"":"""",""lcrtTyCd"":"""",""isMas"":"""",""isElpdt"":"""",""oderInstUntyGrpNo"":"""",""esdacYn"":"""",""infoSysCd"":""정010029"",""contxtSeCd"":""콘010006"",""bidDateType"":""R"",""brcoOrgnCd"":"""",""deptOrgnCd"":"""",""isShop"":"""",""srchTy"":""0"",""cangParmVal"":"""",""currentPage"":"""",""recordCountPerPage"":""10"",""startIndex"":1,""endIndex"":10}}" ), Source = Json.Document( Web.Contents("https://www.g2b.go.kr/pn/pnp/pnpe/BidPbac/selectBidPbacScrollTypeList.do", [ Headers = [ #"authority" = "www.g2b.go.kr", #"method" = "POST", #"path" = "/pn/pnp/pnpe/BidPbac/selectBidPbacScrollTypeList.do", #"scheme" = "https", #"accept" = "application/json", #"accept-encoding" = "gzip, deflate", #"accept-language" = "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7,zh-CN;q=0.6,zh;q=0.5,zh-TW;q=0.4,zh-HK;q=0.3", #"content-type" = "application/json;charset=UTF-8", #"cookie" = "WHATAP=x2amc4safu1krv; XTVID=A2501071301227329; Path=/; infoSysCd=%EC%A0%95010029; _harry_ref=https%3A//www.google.com/; _harry_url=https%3A//www.g2b.go.kr/; _harry_fid=hh-1701578081; _harry_lang=ko-KR; system_language=ko; poupR23AB0000013415=done; poupR23AB0000013414=done; lastAccess=1736223179861; JSESSIONID=NWU3ZmNhMmEtODkyZC00YjdiLWExMzEtNmFjZWQyZDE4Zjk0; _harry_hsid=A250107165624222833; _harry_dsid=A250107165624222403; XTSID=A250107165624222203; xloc=1707X960; globalDebug=false; XTVID=A2501071301227329", #"menu-info" = "{""menuNo"":""01175"",""menuCangVal"":""PNPE001_01"",""bsneClsfCd"":""%EC%97%85130026"",""scrnNo"":""00941""}", #"origin" = "https://www.g2b.go.kr", #"priority" = "u=1, i", #"referer" = "https://www.g2b.go.kr/", #"sec-ch-ua" = """Google Chrome"";v=""131"", ""Chromium"";v=""131"", ""Not_A Brand"";v=""24""", #"sec-ch-ua-mobile" = "?0", #"sec-ch-ua-platform" = """Windows""", #"sec-fetch-dest" = "empty", #"sec-fetch-mode" = "cors", #"sec-fetch-site" = "same-origin", #"submissionid" = "mf_wfm_container_tacBidPbancLst_contents_tab2_body_sbmPbancBidPbancLst", #"target-id" = "btnS0004", #"user-agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", #"usr-id" = "null" ], Content = Payload ] ) ), result = Source[result], #"테이블로 변환됨" = Table.FromList(result, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"확장된 Column1" = Table.ExpandRecordColumn(#"테이블로 변환됨", "Column1", {"prcmBsneSeCd", "prcmBsneSeCdNm", "pbancSeYnNm", "scsbdMthdDtlsCrtrNm", "scsbdMthdCd", "scsbdMthdDtlsCrtrNo", "bidPbancUntyNoOrd", "pbancSttsNm", "pbancSttsCd", "untyBidPbancNo", "untyBidPbancOrd", "bidPbancUntyNo", "bidPbancUntyOrd", "bidPbancNm", "oderInstUntyGrpNo", "oderInstUntyGrpNm", "dmstNm", "pbancPstgDt", "linkInstPbancLnkUrl", "untyBidPbancRegTyCd", "bidMthdCd", "aagrSbmsnElctHdwrSeCd", "rowNum", "prcmBsneUntyNo", "prcmBsneUntyOrd", "bidClsfNo", "bidPrgrsOrd", "bsneClsfCd", "prcmBsneUntyOdn3Val", "prcmBsneUntyOdn4Val", "prcmBsneUntyOdn5Val", "prcmBsneUntyOdn6Val", "prcmBsneUntyOdn7Val", "pbancPicId", "pbancPicNm", "lastPbancYn", "currentPage", "recordCountPerPage", "nextRowYn", "sessUsrIpar", "prgrsUntyPrcmBsneNo", "orderByYn", "gupBsneUntNo", "gupBsneUntNm", "stepBsneUntNo", "stepBsneUntNm", "prssBsneUntNo", "prssBsneUntNm", "bsnePrssPrgrsSeCd", "bsnePrssPrgrsSeNm", "prcsDt", "bsneFlowNo", "prcsRsn", "menuCangVal", "cangParmVal", "resultCode", "resultMsg"}, {"prcmBsneSeCd", "prcmBsneSeCdNm", "pbancSeYnNm", "scsbdMthdDtlsCrtrNm", "scsbdMthdCd", "scsbdMthdDtlsCrtrNo", "bidPbancUntyNoOrd", "pbancSttsNm", "pbancSttsCd", "untyBidPbancNo", "untyBidPbancOrd", "bidPbancUntyNo", "bidPbancUntyOrd", "bidPbancNm", "oderInstUntyGrpNo", "oderInstUntyGrpNm", "dmstNm", "pbancPstgDt", "linkInstPbancLnkUrl", "untyBidPbancRegTyCd", "bidMthdCd", "aagrSbmsnElctHdwrSeCd", "rowNum", "prcmBsneUntyNo", "prcmBsneUntyOrd", "bidClsfNo", "bidPrgrsOrd", "bsneClsfCd", "prcmBsneUntyOdn3Val", "prcmBsneUntyOdn4Val", "prcmBsneUntyOdn5Val", "prcmBsneUntyOdn6Val", "prcmBsneUntyOdn7Val", "pbancPicId", "pbancPicNm", "lastPbancYn", "currentPage", "recordCountPerPage", "nextRowYn", "sessUsrIpar", "prgrsUntyPrcmBsneNo", "orderByYn", "gupBsneUntNo", "gupBsneUntNm", "stepBsneUntNo", "stepBsneUntNm", "prssBsneUntNo", "prssBsneUntNm", "bsnePrssPrgrsSeCd", "bsnePrssPrgrsSeNm", "prcsDt", "bsneFlowNo", "prcsRsn", "menuCangVal", "cangParmVal", "resultCode", "resultMsg"}) in #"확장된 Column1"
- 0
- 4
- 928
질문&답변
나라장터 URL 수집
안녕하세요? 개편이 크게 되었네요. ^^ 가장 큰 변화가 기존에는 통신 방식이 GET이었는데요. POST로 바뀌었네요.개발자도구에서 파일 형식을 Doc가 아닌 JS로 하면 selectBidPbacScrollTypeList.do를 보실 수 있는데요. 이 파일을 클릭해보시면 원하시는 정보가 JSON형식으로 들어 있습니다.따라서 이 파일을 수집하셔야 하는데요. Headers를 보시면 Request Method가 POST로 되어있습니다.(사진) (사진) POST통신은 사실 강의 범위 밖의 내용이라 개편 후 사이트에 맞게 추가 테스트를 해야 답을 드릴 수 있겠습니다. 그나마 엑셀 다운로드 기능이 추가 되어 바로 데이터를 다운로드 할 수 있게 되었으니, 이 기능을 이용해보시는 것을 권해드립니다. 감사합니다.
- 0
- 4
- 928
질문&답변
나라장터 URL 수집
안녕하세요?크롤링은 상대방 웹사이트의 구조에 맞춰서 데이터를 가져오기 때문에,개편을 하면 대부분 구조가 바뀌어 이전 방식으로 수집이 안되는 경우가 많습니다. 저도 개편된 구조를 한 번 살펴보고 다시 답변 드리도록 하겠습니다. 감사합니다.
- 0
- 4
- 928