Web ページからデータを収集しようとしています。4 ビットのデータが必要で、そのうち 2 ビットは取得できましたが、残りの 2 ビットはヒントを受けています。
これは固定 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
およびメーカー部品番号
マイクロプリント P2010 15-32UM、250G
getElementbyID を使用して製品の概要/製品情報を取得していますが、うまく機能していますが、他のテキスト フィールドは機能していないようです (Xpath を調べたところ、オブジェクトでエラーが発生します) VBE が必要です)
次を使用して他の 2 つの要素を正常に実装しました。
Sub Mani() '変数を宣言する オブジェクトとしての Dim objWeb Dim objHTML をオブジェクトとして オブジェクトとしての Dim objElement Dim strData、文字列としての StrData1 set objWeb = CreateObject("internetexplorer.Application") str = "https://cpc.farnell.com/" objWeb.navigate str & Cells(1, 1).Value objWeb.Busy = True の間 ウェン FullURL = objWeb.LocationURL Range("b2").Value = FullURL objWeb.navigate FullURL 'IE.Visible = True 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 End Sub
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 を再読み込みしたいと考えています。 これは、Web からデータを取得 を使用しようとしたことによるレガシーの問題ですが、ページ スクリプト エラーによりうまく機能しなかったため、IE のインスタンスが使用されました。
IE は廃止されたため、今後は使用しないでください。ただし、xhr (XML HTTP リクエスト) 経由で短縮 URLhttps://cpc.farnell.com/SD02808 を使用することもできます。次のコードは、ロードされた HTML コードから必要な情報を読み取る方法のみを示しています。すべての安全装置が欠落しています。
リーリーSet strData を使用するオブジェクト変数と同様に、データ型
Stringの変数を
Nothingに設定しようとしているため、上記のコードでオブジェクト エラーが発生します。 = なし
。