تجري جلسة Chromote حوارًا مع عملية Chrome. تتبع طلبات المتصفح إعدادات الوكيل لتلك العملية، لذا اضبط الوسائط قبل إنشائها:

args <- c(
  chromote::get_chrome_args(),
  "--proxy-server=http://proxy.example:8080"
)
browser <- chromote::Chrome$new(args = args)
controller <- chromote::Chromote$new(browser = browser)
session <- chromote::ChromoteSession$new(parent = controller)

يحافظ هذا على الوسائط الافتراضية الموجودة في Chromote ويضيف مستمع HTTP؛ ويمكن لنقطة نهاية من قائمة وكلاء HTTP أن تملأ عنوان URL في المثال للتصفح العام المسموح. استخدم عنوان socks5 بدلًا من ذلك فقط عندما تتحدث نقطة النهاية فعليًا بروتوكول SOCKS5. أزل مفتاح وكيل موجودًا متعارضًا عند تجميع متجه الوسائط.

نفّذ عمليات CDP المقصودة عبر session، ثم أغلق الجلسة والمراقب والمتصفح المملوك كجزء من تنظيف حمل عمل R. يكون مسار تنظيف R بأسلوب try/finally مفيدًا إذا رفع التنقل خطأ.

بالنسبة إلى التطبيقات التي تستخدم المتصفح الافتراضي المشترك في Chromote، يغيّر set_chrome_args الإعدادات الافتراضية لبناء المتصفح في المستقبل. وهو لا يعيد تشغيل عملية موجودة. إنشاء كائن Chrome صريح، كما هو موضح أعلاه، يجعل الملكية وتوقيت البدء مرئيين.

يمكن لبيئة http_proxy أو https_proxy الخاصة بـ R تهيئة أداة تنزيل R دون تغيير هذا المتصفح. وبالمثل، فإن تغيير مسار Chrome لا يهيئ استدعاء API منفصلًا لـ R. حدّد أي جانب من اتصال CDP يرسل الطلب.

مقالات ذات صلة