토런트 사이트의 일부 영화 정보를 구문 분석하기 위해 vba에 스크레이퍼를 작성했습니다. 이 작업을 수행하기 위해 IE
과 queryselector
을 사용했습니다. 내 코드를 실행할 때 오류가 발생하면서 모든 것을 구문 분석합니다. 계속하는 대신 오류가 갑자기 나타나지 않는 것 같습니다. 오류 상자를 취소하면 결과를 볼 수 있습니다. 내가 가지고있는 오류를 보여주기 위해 아래에 두 개의 이미지를 업로드했습니다. 오류없이 성공적으로 코드를 실행할 수 있습니까? 미리 감사드립니다.모든 일이 끝나면 내 스크레이퍼에서 브라우저를 종료하는 대신 오류가 발생합니다.
Sub Torrent_Data()
Dim IE As New InternetExplorer, html As HTMLDocument
Dim post As Object
With IE
.Visible = False
.navigate "https://yts.am/browse-movies"
Do While .readyState <> READYSTATE_COMPLETE: Loop
Set html = .Document
End With
For Each post In html.querySelectorAll(".browse-movie-bottom")
Row = Row + 1: Cells(Row, 1) = post.queryselector(".browse-movie-title").innerText
Cells(Row, 2) = post.queryselector(".browse-movie-year").innerText
Next post
IE.Quit
End Sub
오류 나는 데 : 오류의
모두가 동시에 나타나고있다
여기에 전체 코드입니다. 인터넷 익스플로러 11을 사용하고 있습니다.
한편, 아래와 같이 시도하면 아무런 문제없이 성공적으로 결과가 나타납니다.
Sub Torrent_Data()
Dim IE As New InternetExplorer, html As HTMLDocument
Dim post As Object
With IE
.Visible = False
.navigate "https://yts.am/browse-movies"
Do While .readyState <> READYSTATE_COMPLETE: Loop
Set html = .Document
End With
For Each post In html.getElementsByClassName("browse-movie-bottom")
Row = Row + 1: Cells(Row, 1) = post.queryselector(".browse-movie-title").innerText
Cells(Row, 2) = post.queryselector(".browse-movie-year").innerText
Next post
IE.Quit
End Sub
참조 나는 라이브러리에 추가 한 :
이1. Microsoft Internet Controls
2. Microsoft HTML Object Library
그래서, 어떤 queryselector
잘못 또는 내가 여기에 누락이 성공적으로 갈 수 있도록? 오류를 제거하기 위해 라이브러리에 추가 할 참조가 있습니까?
빠른 확인 : 'queryselector'를 'querySelector'로 변경하면 첫 번째 코드 샘플에 어떤 차이가 있습니까? – alecxe
아니요, 전혀 변화가 없습니다. 사실,'querySelector'를 쓰려고하면 자동으로'queryselector' 인 소문자로 돌아갑니다. – SIM
좋습니다, 시도해보십시오 :'post.queryselector'를 실행하는 대신'post.innerText'를 직접하십시오. 당신이하고 싶은 것이 아니라 실험을 해보십시오. 같은 오류가 보이나요? 감사. – alecxe