고수분들 도와주세요!! 도서관 책의 일렬번호를 매크로? 크롤링? 시킬 수는 없을까요?

기능/도구
작성자
Gemma
작성일
2021-10-13 15:06
조회
449
엑셀버전 : M365

운영체제 : 윈도우10

안녕하세요!

저는 엑셀의 매크로나 크롤링쪽은 잘 모른는 초보입니다 ㅠㅠ (다운받아서 적용해서 쓰는 수준)

야 나두 엑셀에서 XIMAGE나 이런건 다운받아서 잘 응용해서 사용하고 있는데요.. (너무 감사합니다!)

 

혹시 도서관의 책 일렬번호를 자동으로 다운받을 수 는 없을까 하여 문의드립니다.

제가 매주마다 노가다를 하고 있거든요...

도서관 사이트에서 책 제목을 검색하고, 나오는 청구기호 (책의 고유정리번호?)를 일일히 복사해서 엑셀로 정리하는 작업을 하고있어요.

혹시 이걸 자동화 시킬 수는 없을까요?

 

혹시나 아시는 분이 있다면... 간절히!! 도움을 요청드립니다.

 

도서관사이트

https://www.ydplib.or.kr/

 

관련 파일 (첨부했습니다!)

 

아양 843-C536s

스크랩
공유
전체 6

  • 2021-10-14 14:06
    채택된 답변

    @Gemma

    Private Type BOOK_STRUCT
        BookName As String ' # 책 이름
        BookCode As String ' # 등록번호
        Library As String ' # 도서관
    End Type
    
    Public Sub automatic()
    
    On Error GoTo Err
        Dim bookInfor() As BOOK_STRUCT, i As Integer
        Dim searchBookName As String
        Dim searchBookRecord As Integer
        
        searchBookName = Range("B2").Value ' # 찾으려는 책 제목
        searchBookRecord = CInt(Range("B3").Value) ' # 검색 결과 레코드, 값이 크면 클수록 가져오는 데이터에 비례하여 속도가 늦어질 수 있음
        Call setBookInfor(bookInfor, searchBookName, searchBookRecord)
        
        For i = 0 To UBound(bookInfor)
            Sheets("Sheet2").Cells(i + 6, 1) = bookInfor(i).BookName ' # 책이름
            Sheets("Sheet2").Cells(i + 6, 2) = bookInfor(i).Library ' # 도서관
            Sheets("Sheet2").Cells(i + 6, 3) = bookInfor(i).BookCode ' # 등록번호
        Next
        
        Erase bookInfor
        
        MsgBox "파싱 완료", vbInformation, "완료"
        Exit Sub
    Err:
        MsgBox "찾는책이 존재하지 않습니다.", vbCritical, "오류"
        Err.Clear
    End Sub
    Private Sub setBookInfor(ByRef bookInfor() As BOOK_STRUCT, searchBookName As String, searchRecord As Integer)
    
        Dim Html As HTMLDocument
        Dim tagCount As Integer, i As Integer
    
        temp = getHttpSource(BookName, searchRecord)
        
        Html.body.innerHTML = temp
        
        tagCount = Html.getElementsByClassName("resultList imageType")(0).getElementsByTagName("li").Length
        ReDim bookInfor(tagCount - 1)
        
        i = 0
        For Each oElement In Html.getElementsByClassName("resultList imageType")(0).getElementsByTagName("li")
            bookInfor(i).BookName = oElement.getElementsByTagName("a")(1).innerText
            bookInfor(i).BookCode = Trim(Split(oElement.getElementsByTagName("dd")(1).getElementsByTagName("span")(1).innerText, ":")(1))
            bookInfor(i).Library = Trim(Split(oElement.getElementsByTagName("dd")(2).getElementsByTagName("span")(0).innerText, ":")(1))
            i = i + 1
        Next
    End Sub
    
    
    Private Function getHttpSource(BookName As String, searchRecord As Integer) As String
        Dim WinHttp As Object
        Set WinHttp = CreateObject("winhttp.winhttprequest.5.1")
        Dim pageUrl As String
        
        pageUrl = "https://www.ydplib.or.kr/intro/menu/10003/program/30001/plusSearchResultList.do?searchType=SIMPLE&searchMenuCollectionCategory=&searchCategory=ALL" & _
                            "&searchKey1=&searchKey2=&searchKey3=&searchKey4=&searchKey5=&searchKeyword1=&searchKeyword2=&searchKeyword3=&searchKeyword4=&searchKeyword5=&searchOperator1=&searchOperator2=&searchOperator3=&searchOperator4=&searchOperator5=&searchPublishStartYear=&searchPublishEndYear=&searchRoom=&searchKdc=&searchIsbn=¤tPageNo=1&viewStatus=IMAGE&preSearchKey=TITLE&" & _
                            "preSearchKeyword=" & WorksheetFunction.EncodeURL(BookName) & "&searchKey=TITLE&searchKeyword=" & WorksheetFunction.EncodeURL(BookName) & _
                            "&searchLibrary=ALL&searchLibraryArr=CA&searchLibraryArr=CB&searchLibraryArr=CC&searchLibraryArr=MA&searchLibraryArr=LF&searchLibraryArr=LG&searchLibraryArr=LR&searchLibraryArr=LS&searchLibraryArr=LT&searchLibraryArr=LH&searchLibraryArr=LU&searchLibraryArr=LI&searchLibraryArr=LL&searchLibraryArr=LC&searchLibraryArr=LM&searchLibraryArr=LN&searchLibraryArr=LO&searchLibraryArr=LP&searchLibraryArr=LQ&" & _
                            "searchLibraryArr=LJ&searchLibraryArr=LK&searchLibraryArr=LE&searchLibraryArr=LA&searchLibraryArr=LD&searchLibraryArr=LB&searchLibraryArr=CD&searchSort=SIMILAR&searchOrder=DESC&searchRecordCount=" & searchRecord
        
        WinHttp.Open "GET", pageUrl
        WinHttp.Send
        
        WinHttp.WaitForResponse
        
        getHttpSource = WinHttp.ResponseText
    End Function
    
    

    스스코드 및 첨부파일 참고하세요.

     

    캡처.JPG

    첨부파일 : 도서관-청구기호-정리.xlsm


    • 2021-10-19 13:14

      @ToString 님 너무 감사드립니다!!!!!!!!
      이걸로 보다 쉽게 작업할 수 있을것 같아요!

      혹시 한가지 더 궁금한게 있는데.. 뭔가의 책리스트를 받으면 그걸 자동으로 검색해서 결과지를 만들수 있게 하는 방법은 없을까요? 이건 욕심이긴 하지만요. 일단 위 결과만으로도 너무 감사드립니다~!!!!!


  • 2021-10-13 15:49

    @Gemma 님 도서관 서버 db에 접속 허가 받으셔서 sql로 통채로 받는게 빠를텐데요

     


    • 2021-10-19 13:11

      @붕어 님 아 일반 사용자라 db접속 허가라는것을 받을 수 있는지 모르겠어요 ㅠ


    • 2021-10-13 15:50

      도서관에서 일하시는거면 해당 서버 관리자한테 문의해보셔요


      • 2021-10-19 13:11

        @붕어 님 일반 사용자여서 ㅠㅠ 댓글 감사드립니다


전체 7,839
번호 카테고리 제목 작성자 작성일 추천 조회
알림
🎉 오피스 분야 30주 연속 1위! - 「 진짜쓰는 실무엑셀 」 전자책이 출간되었습니다! (6)
오빠두엑셀 | 2022.09.28 | 추천 5 | 조회 276
오빠두엑셀 2022.09.28 5 276
공지사항 함수/공식
[신규 기능 업데이트!] 👉 이제 게시글 작성시 스크린샷 복/붙이 가능합니다! 😎 (3)
오빠두엑셀 | 2022.08.04 | 추천 5 | 조회 1709
오빠두엑셀 2022.08.04 5 1709
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (97)
오빠두엑셀 | 2021.10.28 | 추천 125 | 조회 7487
오빠두엑셀 2021.10.28 125 7487
42696 VBA
New VBA 리스트박스 목록 선택 시 자동 누적 입력하기 안됨 해결방법 엑셀파일
GMART | 2022.10.01 | 추천 0 | 조회 15
GMART 2022.10.01 - 15
42695 파워쿼리/피벗
New 파워쿼리 병합 후 정렬에 대해서 질문드립니다. 엑셀파일첨부파일
월마리아 | 2022.10.01 | 추천 0 | 조회 10
월마리아 2022.10.01 - 10
42689 VBA
New 셀의 이미지를 복사하는 매크로... 첨부파일
실런 | 2022.10.01 | 추천 0 | 조회 23
실런 2022.10.01 - 23
42686 문서서식
New 영상 자료파일
뿌삐뿌찌빵꾸똥 | 2022.10.01 | 추천 0 | 조회 27
뿌삐뿌찌빵꾸똥 2022.10.01 - 27
42684 문서서식
New 조건부 서식 색 적용 안됨 첨부파일 (3)
아드키 | 2022.10.01 | 추천 0 | 조회 27
아드키 2022.10.01 - 27
42678 VBA
New VBA코드 오류뜨는데 왜 일까요ㅠㅠ 첨부파일 (2)
엑셀공부중 | 2022.10.01 | 추천 0 | 조회 28
엑셀공부중 2022.10.01 - 28
42676 함수/공식
New 함수조언 구합니다. 엑셀파일
엑셀공부중 | 2022.09.30 | 추천 0 | 조회 29
엑셀공부중 2022.09.30 - 29
42672 기능/도구
New 조건부 서식이 적용되지 않습니다. 첨부파일
dollffin | 2022.09.30 | 추천 0 | 조회 30
dollffin 2022.09.30 - 30
42670 피벗테이블
New 관계형데이터베이스 파워피벗 엑셀파일 (2) 답변완료
겸둥이 | 2022.09.30 | 추천 0 | 조회 37
겸둥이 2022.09.30 - 37
42669 함수/공식
New 출퇴근 자료를 이용하여 근태 테이블 작성하기 (index, match, iferror 함수 사용) 엑셀파일 (1)
공학 | 2022.09.30 | 추천 0 | 조회 38
공학 2022.09.30 - 38
42667 VBA
New M365 2206 버전의 VBA 자동화 오류 관련하여 문의를 드리고자 합니다
lililililil | 2022.09.30 | 추천 0 | 조회 24
lililililil 2022.09.30 - 24
42665 함수/공식
New if 함수 논리 설정 시 범위 선택 첨부파일 (2)
구찌갱 | 2022.09.30 | 추천 0 | 조회 30
구찌갱 2022.09.30 - 30
42664 문서서식
New 엑셀 날짜관련 질문드립니다. 첨부파일 (1)
엑셀잘할래요 | 2022.09.30 | 추천 0 | 조회 30
엑셀잘할래요 2022.09.30 - 30
42661 함수/공식
New 함수 조언구합니다. 엑셀파일 (2) 답변완료
엑셀공부중 | 2022.09.30 | 추천 0 | 조회 38
엑셀공부중 2022.09.30 - 38
42660 기능/도구
New 27인치 4K모니터로 엑셀을 하면... (1)
9 Crimes | 2022.09.30 | 추천 0 | 조회 45
9 Crimes 2022.09.30 - 45
42656 함수/공식
New 떨어진 여러 셀간의 AVERAGEIF 함수 사용 (1) 답변완료
아홉열 | 2022.09.30 | 추천 0 | 조회 35
아홉열 2022.09.30 - 35
42655 피벗테이블
New 피벗테이블에서 날짜 값 중에 "월"이 표시되었으면 합니다. 첨부파일 (7) 답변완료
twou**** | 2022.09.30 | 추천 0 | 조회 42
twou**** 2022.09.30 - 42
42653 VBA
New 엑셀 함수가 적용된 셀 영역에 round를 하는 방법 엑셀파일 (9) 답변완료
우산쓰자 | 2022.09.30 | 추천 0 | 조회 31
우산쓰자 2022.09.30 - 31
42651 함수/공식
New 수식 사용 시 결과값 오류 문의 엑셀파일 (3) 답변완료
병알 | 2022.09.30 | 추천 0 | 조회 28
병알 2022.09.30 - 28
42650 피벗테이블
New 관계형데이터 -파워피벗 관련 질문드려요. 엑셀파일 (2) 답변완료
겸둥이 | 2022.09.30 | 추천 1 | 조회 31
겸둥이 2022.09.30 1 31
42648
New OFFSET함수 관련 문의 첨부파일 (9)
콕콕이 | 2022.09.30 | 추천 0 | 조회 42
콕콕이 2022.09.30 - 42
42643 기능/도구
New 셀 병합 관련 알림 끄는 법 첨부파일 (1)
이종현 | 2022.09.30 | 추천 0 | 조회 29
이종현 2022.09.30 - 29
42635 VBA
New 원드라이브에 공유된 엑셀간에 VBA를 사용해서 데이터를 가져올수 있을까요 ?
헬롱 | 2022.09.30 | 추천 0 | 조회 30
헬롱 2022.09.30 - 30
42632 파워쿼리/피벗
New 파워쿼리 내에서 vlookup함수와 같은 기능이 없을까요? 엑셀파일첨부파일 (3)
월마리아 | 2022.09.30 | 추천 0 | 조회 46
월마리아 2022.09.30 - 46
42621 기능/도구
New 셀 하나당 그래프 하나를 만드는 방법이 궁금합니다. 첨부파일 (2) 답변완료
XD | 2022.09.29 | 추천 0 | 조회 45
XD 2022.09.29 - 45
42619 함수/공식
New 행방향으로으로 정열된 동일항목의 비고를 열방향으로 정열하는 방법 엑셀파일첨부파일 (8)
마운틴 | 2022.09.29 | 추천 0 | 조회 45
마운틴 2022.09.29 - 45
42618 VBA
New 블로그 문서 발행량 크롤링 서식을 다른 파일에서 이용하려면? 첨부파일 (3) 답변완료
XD | 2022.09.29 | 추천 0 | 조회 27
XD 2022.09.29 - 27
42612 함수/공식
New 다중 조건으로 하나의 결과값을 도출하고 싶습니다. 엑셀파일첨부파일 (2) 답변완료
배워배움 | 2022.09.29 | 추천 0 | 조회 38
배워배움 2022.09.29 - 38
42610 피벗테이블
New 엑셀 문서 재정리및 재정렬(부탁드려요 ㅠㅠ) 엑셀파일 (1)
u2y1gz71vdif | 2022.09.29 | 추천 0 | 조회 40
u2y1gz71vdif 2022.09.29 - 40
42607 기능/도구
New 엑셀 프로그램 2개를 하나의 파일로 합치는 방법이 있을까요? 엑셀파일 (2) 답변완료
노무인턴 | 2022.09.29 | 추천 0 | 조회 46
노무인턴 2022.09.29 - 46