🔥💥🚀 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/.