برنامه نویسی

🔥💥🚀 10 روش از دست رفته سلنیوم!😱💥🔥

توضیحات تصویر

معرفی

بر اساس تجربه‌ام، چندین ابزار کاربردی برای ساده‌سازی سلنیوم برای توسعه‌دهندگان ربات ایجاد کرده‌ام. ابتدا اجازه دهید این ابزارهای کاربردی را برای شما شرح دهم و سپس نحوه استفاده موثر از آنها را توضیح خواهم داد.

مواد و روش ها

1) get_by_current_page_referrer(link, wait=None):

جایگزینی برای driver.get هست get_by_current_page_referrer(link, wait=None) سودمندی هنگام استفاده از driver.get، document.referrer ویژگی خالی می ماند و نشان می دهد که شما مستقیماً URL صفحه را در نوار جستجو وارد کرده اید، که می تواند باعث ایجاد شک برای سیستم های تشخیص ربات شود.

با استخدام get_by_current_page_referrer(link, wait=None)، می توانید با کلیک کردن روی یک پیوند، بازدیدی را شبیه سازی کنید که به نظر می رسد به آن صفحه رسیده اید. این رویکرد یک رفتار مرور طبیعی تر و کمتر قابل تشخیص ایجاد می کند.

به طور کلی، هنگام پیمایش به صفحه داخلی یک وب سایت، توصیه می شود آن را جایگزین کنید driver.get با get_by_current_page_referrer. علاوه بر این، شما می توانید با استفاده از گزینه اختیاری، مدت زمان انتظار را قبل از پیمایش مشخص کنید wait پارامتر.

driver.get_by_current_page_referrer("https://example.com")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2) js_click(element):

هنگام کلیک بر روی عناصر با سلنیوم، عناصر می توانند توسط پنجره های بازشو، هشدارها یا عناصر دیگر رهگیری شوند که منجر به بالا رفتن یک ElementClickInterceptedException خطا

برای مدیریت چنین شرایطی، می توانید از آن استفاده کنید js_click روش. این روش شما را قادر می سازد تا با استفاده از جاوا اسکریپت بر روی یک عنصر کلیک کنید و هرگونه رهگیری از پنجره های بازشو یا هشدار را دور بزنید.

با بکارگیری js_click روش، شما می توانید اطمینان حاصل کنید که عملیات کلیک به آرامی و بدون رهگیری اجرا می شود.

button = driver.get_element_or_none_by_selector(".button")
driver.js_click(button)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

3) get_cookies_and_local_storage_dict():

این روش یک فرهنگ لغت حاوی دو کلید “کوکی ها” و “local_storage” را برمی گرداند که هر کدام حاوی فرهنگ لغت کوکی ها و حافظه محلی است. می‌توانید با ذخیره کردن آن‌ها در یک فایل JSON از آنها برای تداوم جلسه استفاده کنید.

site_data = driver.get_cookies_and_local_storage_dict()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

4) add_cookies_and_local_storage_dict(self, site_data):

این روش هم کوکی ها و هم داده های ذخیره سازی محلی را به وب سایت فعلی اضافه می کند.

site_data = {
    "cookies": {"cookie1": "value1", "cookie2": "value2"},
    "local_storage": {"name": "John", "age": 30}
}
driver.add_cookies_and_local_storage_dict(site_data)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

5) organic_get link, wait=None):

این روش یک فرآیند دو مرحله‌ای را دنبال می‌کند: ابتدا صفحه اصلی Google را بارگیری می‌کند و سپس به پیوند مشخص شده هدایت می‌شود. این رویکرد بسیار شبیه روشی است که مردم معمولاً از وب‌سایت‌ها بازدید می‌کنند، که منجر به رفتار انسانی‌تر و کاهش احتمال شناسایی ربات می‌شود.

driver.organic_get("https://example.com")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

6) local_storage

این ویژگی یک نمونه از را برمی گرداند LocalStorage کلاس از bose.drivers.local_storage مدول. این کلاس برای تعامل با حافظه محلی مرورگر به روشی آسان استفاده می شود.

local_storage = driver.local_storage

# Set an item in the Browser's Local Storage
local_storage.set_item('username', 'johndoe')

# Retrieve an item from the Browser's Local Storage
username = local_storage.get_item('username')
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

7) save_screenshot(filename=None)

از این روش برای ذخیره اسکرین شات از صفحه وب فعلی در فایلی استفاده کنید tasks/ فهرست راهنما. نام فایل اسکرین شات بر اساس تاریخ و زمان فعلی ایجاد می شود، مگر اینکه یک نام فایل سفارشی ارائه شود.

driver.save_screenshot()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

8) short_random_sleep() و long_random_sleep():

این روش‌ها برای مدت زمان تصادفی، یا بین ۲ تا ۴ ثانیه (کوتاه) یا بین ۶ تا ۹ ثانیه (طولانی) می‌خوابند. می توانید از آنها به صورت زیر استفاده کنید:

driver.short_random_sleep()
driver.long_random_sleep()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

9) get_element_or_none(xpath, wait=None)، get_element_or_none_by_selector(selector, wait=None)، get_element_by_id(id, wait=None)، get_element_or_none_by_text_contains(text, wait=None)، get_element_or_none_by_text(text, wait=None)، get_element_or_none_by_name(selector, wait=None):

این روش ها عناصر وب را بر اساس معیارهای مختلف در صفحه پیدا می کنند. آنها عنصر وب را در صورت وجود برمی گردانند یا None اگر آن را ندارد. همچنین می توانید چند ثانیه صبر کنید تا عنصر ظاهر شود. می توانید از آنها به این صورت استفاده کنید

# find an element by xpath
element = driver.get_element_or_none("//div[@class="example"]", 4)

# find an element by CSS selector
element = driver.get_element_or_none_by_selector(".example-class", 4)

# find an element by ID
element = driver.get_element_by_id("example-id", 4)

# find an element by text
element = driver.get_element_or_none_by_text("Example text", 4)

# find an element by partial text
element = driver.get_element_or_none_by_text_contains("Example", 4)

# find an element with attribute name = "email"
element = driver.get_element_or_none_by_name("email", 4)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

10) is_in_page(target, wait=None, raise_exception=False)

این روش بررسی می کند که آیا مرورگر در صفحه مشخص شده است یا خیر. URL را برای مدت زمان مشخصی بررسی می‌کند (در صورت ارائه انتظار) و اگر هدف پیدا نشد، False را برمی‌گرداند. اگر raise_exception True باشد، در صورت پیدا نشدن صفحه یک استثنا ایجاد می کند.

is_in_page = driver.is_in_page('example.com', wait=10, raise_exception=True)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

چگونه از این ابزارهای کمکی استفاده کنیم؟

ساده ترین راه برای استفاده از این ابزارها استفاده از Bose Framework است که اولین چارچوبی است که برای ساده سازی توسعه ربات برای توسعه دهندگان طراحی شده است.

Bose Framework به طور خودکار این روش های کاربردی را در Selenium Driver قرار می دهد. با دنبال کردن آموزش در اینجا می توانید نحوه استفاده از Bose Framework را بیاموزید https://www.omkar.cloud/bose/docs/tutorial/.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا