웹 페이지에서 데이터를 긁어내려고 하는데 4비트의 데이터가 필요합니다. 그 중 2개는 검색할 수 있었지만 나머지 2개는 힌트를 받았습니다.
이 URL은 고정된 URL은 아니지만 리디렉션 후 IE에서 검색되었으므로 이 예에서는 다음을 사용합니다. https://cpc.farnell.com/warton/microprint-p2010-15-32um-250g/solder-paste-15-32um-250g-pot/dp/SD02808
제목을 받고 싶습니다:
Microprint P2010 무세척, 무연 솔더 페이스트, 15-32um, 250g 용기 - MICROPRINT P2010 15-32UM, 250G
및 제조업체 부품 번호
Microprint P2010 15-32UM, 250G
getElementbyID를 사용하여 제품 개요/제품 정보를 가져왔는데 잘 작동하지만 다른 텍스트 필드는 작동하지 않는 것 같습니다(Xpath를 살펴보니 개체에서 오류 발생) VBE 필요)
다음을 사용하여 나머지 2개 요소를 성공적으로 구현했습니다.
Sub Mani() '변수 선언 희미한 objWeb을 객체로 희미한 objHTML을 객체로 희미한 objElement를 객체로 Dim strData, StrData1 As String objWeb = CreateObject("internetexplorer.Application") 설정 str = "https://cpc.farnell.com/" objWeb.navigate str & 셀(1, 1).값 objWeb.Busy = True인 동안 향하게 하다 FullURL = objWeb.LocationURL 범위("b2").값 = FullURL objWeb.navigate FullURL 'IE.Visible = 참 objWeb.Busy = True인 동안 향하게 하다 objHTML = objWeb.document 설정 strData = objHTML.getElementById("pdpSection_FAndB").innerText ActiveSheet.Range("C3").Value = strData strData = objHTML.getElementById("pdpSection_pdpProdDetails").innerText strData = 없음 설정 ActiveSheet.Range("D3").Value = strData objWeb.Quit 서브 끝
URL 다시 로드는 URL 리디렉션을 탐색하기 위한 것입니다.
https://cpc.farnell.com/SD02808
기본 URL로 리디렉션
https://cpc.farnell.com/warton/microprint-p2010-15-32um-250g/solder-paste-15-32um-250g-pot/dp/SD02808
A1에 부품 번호를 입력하고 Excel에서 이를 VB에서 변수로 사용한 다음 IE 인스턴스에서 전체 URL을 다시 읽으려고 합니다. 이는 웹에서 데이터 가져오기를 사용하려고 시도할 때 발생하는 레거시 문제로, 페이지 스크립트 오류로 인해 제대로 작동하지 않아 IE 인스턴스가 사용되었습니다.
IE는 죽었으므로 더 이상 사용하면 안 됩니다. 그러나 xhr(XML HTTP 요청)을 통해 단축 URLhttps://cpc.farnell.com/SD02808을 사용하는 것도 가능합니다. 다음 코드는 로드된 HTML 코드에서 필요한 정보를 읽는 방법만 보여줍니다. 모든 안전 장치가 누락되었습니다.
위에 표시된 코드의 개체 오류는 데이터 유형
으아악String
的变量设置为Nothing
,就像使用Set 的对象变量一样strData = 无
을 변환하려고 하기 때문에 발생합니다.