Gəlin başlayaq görək bu bizə niyə lazımdır. Rutinin vəzifələrin avtomatlaşdırılması — bu, evdə robotun olmasına bənzəyir, hansı ki sizin yerinizə darıxdırıcı işləri görür, siz isə həyatdan həzz alırsınız. Selenium — məhz belə "robotlardan" biridir, amma proqramlaşdırma dünyasında. O, veb-səhifələrlə insan kimi qarşılıqlı əlaqə saxlaya bilər. Xəyallarınızı işə salın və təsəvvür edin ki, sizin bot avtomatik olaraq məlumat toplayır, formaları doldurur və ya sevdiyiniz malların qiymətini yoxlayır. Möhtəşəmdir, deyilmi?
Ama projəyə başlamazdan əvvəl vacibdir ki, biz nəyi və necə avtomatlaşdıracağımızı dəqiq müəyyən edək. Gəlin layihəmizi planlaşdırmağa kömək edəcək addımları nəzərdən keçirək.
1. Layihə tələblərinin analizi
Layihəyə qoyulan tapşırıqların təhlili
Proqramlaşdırma dünyasında, eyni mətbəxdə olduğu kimi, bişirməyə başlamazdan əvvəl nə əldə etmək istədiyinizi anlamalısınız. Reseptlə əlaqəni götürək: bizdə "tərkiblər" — yığılması lazım olan məlumatların siyahısı var. Bundan sonra qərar veririk ki, onları hansı "kulinar" üsullar ilə əldə edəcəyik.
Təsəvvür edin ki, siz marketinq şirkətində işləyirsiniz və rəqiblər haqqında məlumatları toplamalısınız. Özünüzə verəcəyiniz suallar belə olacaq:
- Hansı məlumatları toplamalıyam? Məsələn, qiymətlər, rəylər, reytinqlər və s.
- Əl ilə edilsə, bu nə qədər vaxt aparacaq?
- Hansı veb-saytları və ya xidmətləri istifadə edəcəyəm?
Toplanacaq məlumatlar və onların çıxarılması üsullarının siyahısının hazırlanması
Lazım olan məlumatlar siyahısının hazırlanması vacib addımdır. Bu, botunuzun bütün əhəmiyyətli məlumatları toplamağını təmin edir, və heç nəyi unutmur, məsələn, yuyulma maşınında unutulan corablar kimi.
Fərz edək ki, biz internet-mağaza səhifəsindəki məhsullar haqqında məlumatları toplamağı planlaşdırırıq. Bizim üçün əsas olanlar:
- Məhsul adları.
- Qiymətlər.
- Mövcudluq haqqında məlumat.
İndi bizim məlumatlar siyahısı var və indi sizin düşünməyiniz lazımdır, bu məlumatları necə çıxarmaq olar. Bunun üçün Selenium metodlarından istifadə edə bilərik, məsələn, find_element_by_id
, find_elements_by_class_name
və başqaları. Amma bu barədə biz növbəti mühazirədə danışacağıq, hazırda isə sadəcə bilin ki, bot lazım olan məlumatları tapmağı bacaracaq, sanki təcrübəli bir detektiv kimi!
Məlumat yığımı üçün uyğun veb-səhifələrin və xidmətlərin seçilməsi
İndi vacib qərar gəldi: məlumat mənbələrinin seçilməsi. Bu, kəşfiyyatda düzgün xəbərlər mənbəyini seçmək kimidir — biz etibarlı və strukturlaşdırılmış veb-səhifələr axtarırıq.
Fərz edək ki, biz kitablar haqqında məlumat toplayırıq. Biz Amazon və ya Goodreads kimi saytları seçə bilərik. Ancaq vacibdir ki, seçilmiş saytların məlumat yığımı üçün heç bir məhdudiyyəti olmadığından əmin olun. Kiçik bir məsləhət: diqqət yetirin robots.txt
fayllarına — onlar adətən saytda veb-skreypingin icazə verildiyi barədə məlumat ehtiva edirlər.
2. İnkişaf mərhələlərinin planlaşdırılması
Əməliyyatların ardıcıllığı və tapşırıqlara bağlanması
Artıq bütün "ingredientlər"imiz var, indi isə "hazırlama" prosesini planlaşdırmaq vaxtıdır. İnkişaf kontekstində əməliyyatların ardıcıllığı çox mühümdür. Bu, tort bişirərkən qaydalara riayət etmək kimidir: əvvəl xəmir yoğurulur, sonra bişirilir. Bizim vəziyyətimizdə isə bu belə görünə bilər:
- Saytda autentifikasiya olunmaq (əgər tələb olunursa).
- Məlumatların axtarışı və çıxarılması.
- Məlumatların lazım olan formatda saxlanılması.
Hər bir mərhələyə hansı tapşırıqlar daxil olacaq? Unutmayın, optimallaşdırma üçün hər hansı bir addımı əlavə etməkdə sərbəstsiniz.
Resursların planlaşdırılması və tapşırıqların bölüşdürülməsi
Əgər komanda halında işləyirsinizsə, resursların planlaşdırılması və tapşırıqların bölüşdürülməsi — uğurlu layihə üçün xəzinədir. Kim kod yazmağa cavabdeh olacaq, kim test etməyə, kim isə ev tapşırıqlarına... yəni, sənədləşdirmə işinə cavabdeh olacağını müəyyən edin.
Tək işləyirsən? Problem deyil! Tapşırıqları daha kiçik hissələrə böl və özünə deadline təyin et. Özünü yoxlamağı unutma — bu, "sehrli kod" yazmaqdan qaçmağa kömək edəcək, hansı ki, onu debug etmək çətin ola bilər (hamımız bilirik ki, belə kod çox da dostcasına olmur).
Risklərin qiymətləndirilməsi və onları azaltmanın yollarının müəyyən edilmə
Hər bir layihə — kiçik bir macəradır, və yaxşı macəra filmlərində olduğu kimi, onun da tələləri ola bilər. Layihənizin potensial risklərini nəzərdən keçirək:
- Botun işlədiyi saytın strukturunda dəyişikliklər.
- Sayta sorğu göndərmə limitləri.
- Kodda mümkün səhvlər.
Bu riskləri necə azaltmaq olar? Həmişə "B planı"nız olsun və adaptasiya etməyə hazır olun. Məsələn, sayt dəyişən zaman məlumatların seçimini asanlıqla dəyişmək üçün elastik kod strukturu istifadə edin. Və ya bloklanmaların qarşısını almaq üçün müəyyən zaman intervalında sorğuların sayına məhdudiyyət qoyun.
Planlama və tələblərin toplanması — layihənizin təməlidir. İlk baxışda bu, binanın layihəsini çəkən memarın işinə oxşayır: bütün detalları və xırdalıqları nəzərə almaq lazımdır. Amma bu təməli qoyduqdan sonra avtomatlaşdırmanız Stradivari skripkası kimi işləyəcək — hamar və problemsiz.
Bəs hazırıq, avtomatlaşdırılmış botlar dünyasına dalmağa? Növbəti mühazirədə veb-səhifədəki elementlərə axtarış etmək və qarşılıqlı əlaqə yaratmaq üçün funksiya yaratmağa başlayacağıq. Bu çox əyləncəli olacaq — Ceyms Bond filmləri kimi, amma bizim botumuz "agent 404" olacaq!
3. Selenium-un yaranma tarixi
2004-cü ildə ThoughtWorks-də işləyən developer Ceyson Haggins, iş vaxtının və xərclərin izlənməsi üçün daxili veb-tətbiqin test edilməsini avtomatlaşdırmaq zərurəti ilə üzləşdi. Bu prosesi sadələşdirmək üçün JavaScript-də JavaScriptTestRunner adlı bir alət yaratdı, hansı ki sonralar Selenium Core kimi tanındı. Maraqlı burasıdır ki, “Selenium” adı bir zarafatdan yaranıb: Haggins qeyd edib ki, selenium civə zəhərlənməsinin antidotudur, bu da rəqib məhsul “Mercury Interactive”-ə işarə idi.
Bu alət tezliklə həmkarlarının diqqətini cəlb etdi və qısa müddət sonra layihəyə Pol Hammant kimi digər developerlər qoşuldular. Pol Hammant açıq mənbə kodu təqdim etməyi və Selenium-un müxtəlif proqramlaşdırma dilləri ilə işləmə imkanlarını genişləndirməyi təklif etdi. Beləliklə, Selenium-un təkamülü başlayaraq onu veb-tətbiqlərin avtomatlaşdırılmış testləri üçün ən məşhur alətlərdən birinə çevirdi.
GO TO FULL VERSION