Saya memiliki halaman web yang harus saya kerjakan sepanjang hari, itu adalah portal. Saya perlu memuat ulang sekitar 500 kali sehari, setidaknya.

Saya merasa sangat lambat, dan saya telah mengidentifikasi bahwa itu membuat panggilan jaringan (hanya untuk memuat gambar profil) ke situs web tertentu yang tidak dapat saya daftarkan di sini, dan waktu panggilan jaringan itu habis.
Sekarang karena waktu habis, saya tidak mendapatkan gambar profil, tetapi akhirnya membuang waktu sekitar 30 detik per reload.

Saya dapat memblokir domain di tab "Jaringan" di Alat Dev Chrome, tetapi saya mencari perbaikan yang lebih permanen. Saya tidak ingin Alat Dev terbuka sepanjang waktu karena menggunakan real estat layar yang berharga. Saya belum menemukan cara untuk secara permanen memblokir panggilan jaringan tertentu yang akan menghemat waktu saya berjam-jam per hari.

Ada 3 hal yang terlintas di pikiran saya saat ini:

  • Blokir semua aset gambar di halaman web
  • Inisialisasi instance chrome menggunakan Selenium mungkin, dan berikan opsi untuk memblokir panggilan jaringan itu.
  • Blokir situs web tertentu itu? Sejauh ini belum berhasil untuk saya, apakah saya salah melakukannya?

Saya merasa nyaman dengan perbaikan pada browser apa pun (Internet Explorer, Edge, Chrome, Firefox). Ada petunjuk untuk yang satu ini? Saya tidak bisa menjadi satu-satunya orang yang menghadapi ini, namun saya belum menemukan solusi untuk itu tanpa menggunakan akses admin, yang tidak saya miliki.

2
Harshit Jindal 6 Mei 2021, 21:44

2 jawaban

Jawaban Terbaik

Solusi 2: Luncurkan Chrome Window dari Selenium saat menjalankan Network.setBlockedURLs. Ini hanya akan berfungsi di Selenium 4 dan di atasnya, tetapi sekarang tidak berfungsi di Selenium 4.0.0.b3.

https://chromedevtools.github.io/devtools-protocol/tot/Network/#method-setBlockedURLs

from selenium import webdriver
driver = webdriver.Chrome()
driver.execute_cdp_cmd('Network.setBlockedURLs', {"urls": ["https://www.somelink.com/*"]})
driver.get("www.mywebsite.com")
2
Harshit Jindal 7 Mei 2021, 09:17

Solusi 1: Panggil instance chrome dari Selenium, dan nonaktifkan semua gambar. Bekerja, tetapi bukan pendekatan terbaik.

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)

2
Harshit Jindal 6 Mei 2021, 19:15