[ad_1]
Halo semuanya. Saya mencoba mengambil beberapa konten dari sebuah situs web, halaman html menampilkan data dengan beberapa halaman, setiap konten halaman berisi item div 6 × 15.
Di bagian bawah item div ini, ada tautkan label halaman seperti halaman sebelumnya..halaman 1..halaman 2.. halaman 3…. halaman berikutnya.. , atribut ‘href’ dari label ini tertaut ke ‘location.href’ yang berbeda.
Saya ingin menulis sepotong kode javascript di konsol F12 untuk mengambil semua item div ini info . Saya tidak yakin itu mungkin untuk membuatnya berhasil.
Yang saya tahu BOM memiliki objek global, window, saya melacak peristiwa objek global ini, berharap dapat menangkap peristiwa pemuatan halaman baru ketika mengklik setiap label halaman, kemudian menggunakan dokumen DOM untuk mengambil item div.
Apa yang saya coba:
kodenya kira-kira seperti itu:
window.addEventListener('load', () => { //1.fetch div items //for(var item of document.querySelectorAll('div.item')) {} //2.find next page label and click //var next_page = document.querySelector('a.next'); //next_page.click(); });
Saat saya mengklik label halaman pertama, mencoba memicu perulangan pembaruan setiap item halaman, sementara, konsol DevTool tampaknya berubah ke konteks baru, kode js TIDAK berfungsi.
Karena jendela BOM adalah objek global, dan saya tidak membuka jendela baru, konten halaman baru dimuat di jendela yang sama, mengapa acara ‘memuat’ jendela tidak terpicu di halaman konten baru ketika saya mengklik label halaman yang mengubah location.href ?
Solusi 1
Pertama, ini tidak etis tanpa izin pemilik situs, ini mungkin menambah beban pada servernya demi keuntungan Anda!
Untuk mengklik sebuah elemen di situs, Anda perlu mendapatkan id elemennya dan menggunakannya untuk mengklik secara otomatis, dalam hal ini elemen ‘a’ untuk memuat halaman. Elemen ‘a’ terdapat dalam div dengan id ‘paginator’, pilih setiap elemen di dalamnya dan klik –
<script> window.addEventListener('load', function() { //Get all the 'a' elements inside the paginator div... var links = document.querySelectorAll('.paginator a'); //Iterate through each link and trigger a click event for each... links.forEach(function(link) { link.click(); }); }); </script>
[ad_2]
コメント