아래의 다음 VBA 코드를 사용하여 카운티, 인구 및 중간 값을 웹 스크 레이 핑하려고했습니다. 이 문제가 발생하지만 다음과 같은 문제가 발생합니다. 아래의 블록 따옴표에있는 항목 번호가 다양합니다. 즉, 특정 우편 번호에 대해 잘못된 데이터 요소를 검색합니다 (아래 스프레드 시트 이미지 참조).Excel VBA 웹 스크랩 - getElementsbyTagName.Item 번호가 일정하지 않음
나는 변수 항목 번호를 연구했지만, 가깝게 유일한 경우는 클래스 이름으로 요소를 골라하는 collection를 검색합니다. 그러나, 나는 클래스 이름을 가지고 있지 않습니다와 함께 일하고 있어요 HTML은 아래를 참조하십시오 : 다음 검색 TAGNAME의 innerText와 :
이 가능 처음 문자열 "군"을 찾을 수 있습니다 td? 또한 전체 테이블 반환을 고려했지만 데이터는 서로 다른 두 테이블 내에서 호스팅됩니다. 보시다시피, 몇 가지 아이디어가 있지만 좋은 예제를 찾을 수없는 것 같아서 코드면에서 다소 분실했습니다.
Sub ZipCodeScrape()
Set ZipCodeRange = Range("C2", Range("C2").End(xlDown))
Dim IE As Object
Set IE = New InternetExplorer
Dim url As String
url = "https://www.unitedstateszipcodes.org/"
Dim County As String
Dim Population As String
Dim MedianHomeVal As String
Dim HTMLdoc As HTMLDocument
For Each cell In ZipCodeRange
IE.navigate (url & cell.Value)
'Allows IE to load
While IE.readyState <> 4
DoEvents
Wend
Set HTMLdoc = IE.document
County = HTMLdoc.getElementsByTagName("td").Item(2).innerText
Population = HTMLdoc.getElementsByTagName("td").Item(6).innerText
MedianHomeVal = HTMLdoc.getElementsByTagName("td").Item(12).innerText
cell.Offset(0, 1) = County
cell.Offset(0, 2) = Population
cell.Offset(0, 3) = MedianHomeVal
Next cell
End Sub
데이터 쿼리를 사용하여 페이지를 빈 시트로 가져온 다음 셀 참조를 사용하여 데이터에 액세스합니다. 'Alt + D, D, W'. – ACatInLove