새로운 AI 툴

https://poe.com/
https://gemini.google.com/app

 

‎Gemini - 대화를 통해 아이디어를 강화하세요

Bard가 Gemini로 바뀌었습니다. Google AI의 도움을 받아 글을 쓰고, 계획하고, 학습해 보세요.

gemini.google.com

 


SCC

'인터넷익스플로러 열고 닫기
Function OpenIEAndCloseIE()

End Function

GET 방식

https://www.google.com/search?q=schd&page=1

url : https://www.google.com/search => ? 뒤에 파라메터가 옴 각 파라메터는 & 로 이어짐.
parameta1 : q = chd
parameta2 : page = 1


html 구조

1번 방법 : html page를 개발자 도구로 분석 ( F12 )

2번 방법 : html page > 원하는 요소 커서위치 > 오른쪽 마우스, 검사 > 요소찾기(ctrl + f)

html 파일 예시

test.html
0.00MB


크롤링

가   능 : 정적 웹페이지 (www.google.com)

불가능 : 동적 웹페이지(www.ilovehadan.com) 

 

실습파일

value_averaging.xlsm
0.02MB

'찾을 요소를 문자로 받아 그 요소의 텍스트를 리턴하는 함수
Function OpenIEAndGetText(el As String) As String

    Dim ie As Object
    Dim elements As Object
    Dim rt As String

    rt = "" '리턴값

    ' 인터넷 익스플로러 열기
    Set ie = OpenIE()

    ' 웹 사이트 접속
    ie.Navigate "https://www.google.co.kr/search?q=QQQM"

    ' 페이지 로드 완료될 때까지 대기
    Do While ie.Busy = True Or ie.ReadyState <> 4
        DoEvents
    Loop


    On Error Resume Next ' 예외처리 : 오류무시

        '1)클래스명으로 요소 가져오기
        Set elements = ie.Document.getElementsByClassName(el)

        '2)테그명으로 요소 가져오기
        'Set elements = IE.Document.getElementsByTagName(el)

        '3)css selector로 요소 가져오기
        'Set elements = ie.Document.querySelector(el)
        'Debug.Print (elements.innerText)

        '가져온 요소 순회
        For Each element In elements
            'If element.innerText Like "*원*" Then
            Debug.Print (element.innerText)
            rt = element.innerText
            'End If
        Next

    On Error GoTo 0 ' 오류 처리 복구


    ' 인터넷 익스플로러 닫기
    'CloseIE ie

    ' h1 태그의 텍스트 반환
    OpenIEAndGetText = rt
End Function

Sub OpenIEAndGetText_test()

    Dim rt As String
    Dim h1Text As String

    rt = ""

    rt = OpenIEAndGetText("BNeawe iBp4i AP7Wnd")

    'Debug.Print (ExtractNumericValue(rt))

End Sub


Function ExtractNumericValue(ByVal str As String) As Double
    Dim result As Double
    Dim i As Long
    Dim temp As String

    result = 0
    temp = ""

    ' 문자열에서 숫자와 소수점만 추출
    For i = 1 To Len(str)
        If IsNumeric(Mid(str, i, 1)) Or Mid(str, i, 1) = "." Then
            temp = temp & Mid(str, i, 1)
        End If
    Next i

    ' 쉼표(,) 제거
    temp = Replace(temp, ",", "")

    ' 숫자 형식으로 변환
    If temp <> "" Then
        result = CDbl(temp)
    End If

    ExtractNumericValue = result
End Function

Sub ExtractNumericValue_test()

    Debug.Print (ExtractNumericValue("1,235.80"))

End Sub

'스터디내용' 카테고리의 다른 글

자주 사용하는 VBA 코드 스니펫  (0) 2024.04.04
value_averaging(3)-최종화  (0) 2024.03.21
Value averaging code (1)  (0) 2024.02.23
value averaging  (0) 2024.02.22
SelectionChange, Change 차이  (0) 2024.01.04

+ Recent posts