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

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

운영체제 : 윈도우10

안녕하세요!

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

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

 

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

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

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

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

 

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

 

도서관사이트

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

 

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

 

아양 843-C536s

전체 6

  • 2021-10-14 14:06
    채택된 답변
    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

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

     


    • 2021-10-19 13:11

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


    • 2021-10-13 15:50

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


      • 2021-10-19 13:11

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


전체 4,679
번호 카테고리 제목 작성자 작성일 추천 조회
공지사항 공지사항
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (10)
오빠두엑셀 | 2021.10.28 | 추천 16 | 조회 753
트로피 오빠두엑셀 2021.10.28 16 753
24253 함수/공식
New 파일과 관련된 숫자를 다른 파일에 있는 숫자로 변경할 수 있는 방법 첨부파일 (1)
안녕 | 2021.12.02 | 추천 0 | 조회 11
안녕 2021.12.02 0 11
24252 함수/공식
New 표 범위 내에서 맨 좌측값 가져오기 질문드립니다. (2)
김성환 | 2021.12.02 | 추천 0 | 조회 12
김성환 2021.12.02 0 12
24251 기능/도구
New 엑셀 주식 가격 예측 양식 사용 질문입니다. 첨부파일 (1)
thause | 2021.12.02 | 추천 0 | 조회 18
thause 2021.12.02 0 18
24249 VBA
New 모든 하위 폴더 내의 최신 파일 하나만을 특정 폴더로 복사하려 합니다
너의나라 | 2021.12.02 | 추천 0 | 조회 17
너의나라 2021.12.02 0 17
24248 차트/그래프
New 그래프에서 가로 축 Data 설정하는 법 첨부파일
Etter | 2021.12.02 | 추천 0 | 조회 20
Etter 2021.12.02 0 20
24245 VBA
New 아웃룩 이메일 내용에 VBA 변수 넣기 (1)
argus | 2021.12.02 | 추천 0 | 조회 22
argus 2021.12.02 0 22
24239 VBA
New [초보] 웹 크롤링 관련 질문입니다. 첨부파일 (2) 답변완료
스캐쳐 | 2021.12.02 | 추천 0 | 조회 24
스캐쳐 2021.12.02 0 24
24238 VBA
New 어떤 한 배열에서 다른 배열에 있는 값만 제외하고 새로운 배열3을 만들 수 있을까요? (2)
Paul | 2021.12.02 | 추천 0 | 조회 24
Paul 2021.12.02 0 24
24233 함수/공식
New 0이상의 값(유효값)이 있는 칼럼과 그 값을 불러오고 싶습니다. 첨부파일 (2) 답변완료
크놉스 | 2021.12.02 | 추천 0 | 조회 25
크놉스 2021.12.02 0 25
24232 차트/그래프
New 엑셀 차트에서 특정 값이 너무 높을때 차트화 하는 법 (2) 답변완료
담담 | 2021.12.02 | 추천 0 | 조회 31
담담 2021.12.02 0 31
24230 VBA
New vba 코딩을 부탁드립니다. 첨부파일 (2)
Trimman | 2021.12.02 | 추천 -2 | 조회 33
Trimman 2021.12.02 -2 33
24228 함수/공식
New 등급 기준표를 참조해서 연산을 하려고 할때 (1) 답변완료
지천 | 2021.12.02 | 추천 0 | 조회 22
지천 2021.12.02 0 22
24221 파워쿼리/피벗
New 엑셀 종속 테이블 문의 첨부파일 (2)
유령회원 | 2021.12.02 | 추천 0 | 조회 22
유령회원 2021.12.02 0 22
24216 VBA
New 로그인엑셀 사용시 수식입력줄 사라짐, 모든 엑셀창 자동종료 첨부파일 (1)
엑셀이 | 2021.12.02 | 추천 0 | 조회 19
엑셀이 2021.12.02 0 19
24215 VBA
New set_routine 반복 매크로 (1)
하늘의 꿈 | 2021.12.01 | 추천 0 | 조회 24
하늘의 꿈 2021.12.01 0 24
VBA
New 재질문 입니다.
하늘의 꿈 | 2021.12.02 | 추천 0 | 조회 12
하늘의 꿈 2021.12.02 0 12
24213 파워쿼리/피벗
New [파워쿼리] 계약자코드 중 특수계약 날짜가 일반계약 최소 최대 사이에 포함여부 열추가 첨부파일 (1)
seorin | 2021.12.01 | 추천 0 | 조회 20
seorin 2021.12.01 0 20
24211 VBA
New 시트를 메일머지하여 Hancom PDF 파일로 출력하는 매크로 VBA 코드 도움을 받고 싶어요. 첨부파일 (4) 답변완료
김학동 | 2021.12.01 | 추천 0 | 조회 34
김학동 2021.12.01 0 34
24210 함수/공식
New 혹시 이런 것도 구할 수 있을까요? (3)
마른막대기 | 2021.12.01 | 추천 0 | 조회 38
마른막대기 2021.12.01 0 38
24207 함수/공식
New 중복값 중 제일 마지막 값 추출 (2)
rladud99 | 2021.12.01 | 추천 0 | 조회 39
rladud99 2021.12.01 0 39
24203 함수/공식
New 엑셀 값 가로/세로 변경하는 방법 문의드려요! 첨부파일 (2) 답변완료
이시현 | 2021.12.01 | 추천 0 | 조회 39
이시현 2021.12.01 0 39
24200 함수/공식
New 데이터를 일정간격으로 띄워서 입력하고 싶습니다. (8) 답변완료
wlfl**** | 2021.12.01 | 추천 0 | 조회 48
wlfl**** 2021.12.01 0 48
24191 함수/공식
New 일치하는 값에 특정 데이터를 넣고싶습니다. (1)
노랑토끼 | 2021.12.01 | 추천 0 | 조회 54
노랑토끼 2021.12.01 0 54
24188 VBA
New VBA에서 이름이 긴 파일이 있는데 그 파일 이름을 바꾸고 싶습니다.(상세설명 필수) (2)
naver_618c988d51534 | 2021.12.01 | 추천 0 | 조회 31
naver_618c988d51534 2021.12.01 0 31
24184 문서서식
New 엑셀 자동채우기 관련 문의 (1) 답변완료
오문환 | 2021.12.01 | 추천 0 | 조회 42
오문환 2021.12.01 0 42
24182 함수/공식
New 줄바꿈 함수 도와주세요 첨부파일 (3)
김상준 | 2021.12.01 | 추천 1 | 조회 43
김상준 2021.12.01 1 43
24177 기능/도구
New 매크로 와 자동필터
FLOWERBALL | 2021.11.30 | 추천 0 | 조회 48
FLOWERBALL 2021.11.30 0 48
24168 VBA
New (문의) 번호가 같을경우 옆에 있는 셀의 값을 병합 (1)
ryan_cruze | 2021.11.30 | 추천 0 | 조회 44
ryan_cruze 2021.11.30 0 44
24166 기능/도구
New 질문있습니다.
최강씨맨 | 2021.11.30 | 추천 0 | 조회 36
최강씨맨 2021.11.30 0 36
24163 함수/공식
New 엑셀 특정 내용 추출하는 수식 질문드립니다. (2)
PAKSAW | 2021.11.30 | 추천 0 | 조회 52
PAKSAW 2021.11.30 0 52
24161 함수/공식
New 특정 날짜 값 찾기 (2)
ㄱ박민극 | 2021.11.30 | 추천 -1 | 조회 47
ㄱ박민극 2021.11.30 -1 47