Gunakan Excel\VBA untuk mengikis maklumat daripada halaman web
P粉555696738
2023-09-02 18:48:32
<p>Saya cuba mengikis data dari halaman web, saya memerlukan 4 bit data, 2 daripadanya dapat saya dapatkan semula, tetapi 2 yang lain telah dibayangkan kepada saya. </p>
<p>Ini bukan URL tetap, tetapi ia telah diambil daripada IE selepas ubah hala, jadi untuk contoh ini saya akan menggunakan:
https://cpc.farnell.com/warton/microprint-p2010-15-32um-250g/solder-paste-15-32um-250g-pot/dp/SD02808
</p>
<p>Saya berharap dapat gelaran:</p>
<p><strong>Cetak Mikro P2010 Tanpa Bersih, Tampal Pateri Tanpa Plumbum, 15-32um, Balang 250g - MICROPRINT P2010 15-32UM, 250G</strong></p>
<p>dan nombor bahagian pengilang</p>
<p><strong>Cetak Mikro P2010 15-32UM, 250G</strong></p>
<p>Saya telah menggunakan <strong>getElementbyID</strong> untuk mendapatkan gambaran keseluruhan produk/maklumat produk dan ia berfungsi dengan baik, tetapi medan teks lain nampaknya tidak berfungsi (saya melihat Xpath dan ia ralat keluar pada Objek) VBE diperlukan)</p>
<p>Saya berjaya melaksanakan 2 elemen lain menggunakan: </p>
<pre class="brush:php;toolbar:false;">Sub Mani()
'Isytiharkan pembolehubah
Malapkan objWeb Sebagai Objek
Malapkan objHTML Sebagai Objek
Malapkan objElement Sebagai Objek
Malapkan strData, StrData1 Sebagai String
Tetapkan objWeb = CreateObject("internetexplorer.Application")
str = "https://cpc.farnell.com/"
objWeb.navigate str & Sel(1, 1).Nilai
Manakala objWeb.Busy = Benar
Wend
FullURL = objWeb.LocationURL
Julat("b2").Nilai = FullURL
objWeb.navigate FullURL
'IE.Visible = Benar
Manakala objWeb.Busy = Benar
Wend
Tetapkan objHTML = objWeb.document
strData = objHTML.getElementById("pdpSection_FAndB").innerText
ActiveSheet.Julat("C3").Nilai = strData
strData = objHTML.getElementById("pdpSection_pdpProdDetails").innerText
Set strData = Tiada apa-apa
ActiveSheet.Julat("D3").Nilai = strData
objWeb.Berhenti
Tamat Sub</pra>
<p>Muat semula URL adalah untuk navigasi sekitar ubah hala URL,</p>
<p>https://cpc.farnell.com/SD02808</p>
<p>Ubah hala ke URL utama</p>
<p>https://cpc.farnell.com/warton/microprint-p2010-15-32um-250g/solder-paste-15-32um-250g-pot/dp/SD02808</p>
<p>Saya mahu memasukkan nombor bahagian ke dalam A1, Excel gunakannya sebagai pembolehubah dalam VB, dan kemudian baca semula url penuh daripada contoh IE.
Ini adalah isu warisan daripada cubaan menggunakan <strong>Dapatkan Data daripada Web</strong>, yang tidak berfungsi dengan baik kerana ralat skrip halaman, jadi contoh IE telah digunakan. </p>
IE sudah mati dan tidak boleh digunakan lagi. Walau bagaimanapun, anda juga boleh menggunakan URL yang dipendekkan https://cpc.farnell.com/SD02808 melalui xhr (permintaan HTTP XML). Kod berikut hanya menunjukkan cara membaca maklumat yang diperlukan daripada kod HTML yang dimuatkan. Semua perlindungan hilang.
Ralat objek dalam kod yang ditunjukkan di atas adalah kerana anda cuba menukar jenis data
String
的变量设置为Nothing
,就像使用Set 的对象变量一样strData = 无
.