How To Get Whole Website Screenshot Using Python And Selenium

က်ြန္ေတာ္တုိ့ ဒီေန့ website တစ္ခုရဲ့ screenshot ကုိ ဘယ္လုိယူမလဲကုိေလ့လာၾကရေအာင္။က်ြန္ေတာ္တုိ့ from scratch ကေရးဖုိ့လုိလား?အေျဖက noပါ။We are python developers.We don’t do that here လုိ့ပဲေျပာရေအာင္။က်ြန္ေတာ္တုိ့ဒီမွာ သုံးသြားမွာက

pythonနဲ့ selenium ပါ။အဲ့ေတာ့ seleniumကဘာလဲဆုိတာနဲ့စလုိက္ၾကရေအာင္။

Selenium က powerful ျဖစ္တဲ့ webtesting toolပါ။က်ြန္ေတာ္တုိ့ selenium ကုိ chrome,firefoxတု့ိနဲ့ တြဲသုံးလုိ့ရပါတယ္။လြယ္လြယ္ကူကူေျပာရရင္ browser ေတြကုိ automatic အလုပ္ေတြခုိင္းတာပါ။ဥပမာ မင္းဒီwebsiteကိုသြား ဒါေတြကုိ click ကြာဒါေတြlike ေပးျပီးျပန္လာကြာလုိ့ခုိင္းလုိ့ရပါတယ္။

က်ြန္ေတာ္တုိ့ဒီေန့က web scraping or crawling တြက္ သုံးမွာမုိ့ က်ြန္ေတာ္တုိ့ browser ေတြ GUI modeေတြမသုံးပဲ headless အေနနဲ့ သြားမွာပါ။PhantomJS က headless browser မွာလူသိမ်ားေပမယ့္ beginners friendly ျဖစ္ေအာင္ က်ြန္ေတာ္ firefox နဲ့ေျပာျပသြားပါမယ္။

ဒါဆုိ install စလုပ္လုိက္ရေအာင္။

Firefox တြက္ Geckodriver ကုိလုိပါတယ္။အဲ့တာေၾကာင့္download လုပ္ျပီး seleniumသိမယ့္လမ္းေၾကာင္းထဲထည့္တာပါ။

အခု Selenium ကုိinstall လုပ္ၾကရေအာင္။က်ြန္ေတာ္ကေတာ့ virutalenv တစ္ခုေဆာက္ဖုိ့ တုိက္တြန္းခ်င္ပါတယ္။

ဘယ္လုိမွန္းမသိိရင္ Why you should create virtualenv for your project and how to setup it မွာသြားၾကည့္လုိက္ပါ။

ဒါေလးပါပဲ။pip ကုိသုံးျပီး selenium ကုိinstall လုပ္လုိက္ပါျပီ။

Code စေရးလုိက္ရေအာင္။စိတ္မပူပါနဲ့ ၁၀ေၾကာင္းပဲရွိတာပါ။သိထားသင့္တာမုိ့ မိတ္ဆက္ေပးလုိက္တာပါ။

က်ြန္ေတာ္တုိ့ line 1 to 3 မွာ လုိအပ္တာေတြ import လုပ္တယ္။ဒီေနရာမွာ က်ြန္ေတာ္ firefox ကုိသုံးသြားမယ္လုိ့အေပါ္မွာေျပာထားပါတယ္။အဲ့တာေၾကာင့္driver ကုိ firefoxသုံးမယ္လုိ့ေရးလုိက္ပါတယ္ line 18မွာ။က်ြန္ေတာ္ တုိ့ရဲ့ method ျဖစ္တဲ့ get_screenshotထဲမွာေတာ့ website url ကိုသြားrequestလုပ္ျပီး website loading or internetေၾကာင့္loading မျပီးေသးမွာစုိးလုိ့ ခနေစာင့္လုိက္ပါတယ္။html ရဲ့ body tag ထဲကဟာအားလုံးကုိ ယူျပီး file အေနနဲ့write လုပ္လုိက္တာပါ။

က်ြန္ေတာ္တုိ့ဒီမွာ opts.set_headless() မပါဘူးဆုိ browser ၾကီးပြင့္ျပီးwebsite ဆီသြားမွာပါ။အဲ့တာေၾကာင့္ထည့္ေရးထားတာပါ။က်ြန္ေတာ္ကေတာ့ backgroundက run ရတာပုိသေဘာက်ပါတယ္။

Thank you..

Share:

Leave a Reply