Basic Web Scraping-Finding Free Books

Web Scraping နဲ့ ပတ္သတ္ျပီး က်ြန္ေတာ္တင္ေပးမယ္လုိ့ ေျပာထားတဲ့အတုိင္း basic ကေန စတင္ေပးလုိက္ပါတယ္။ဒီေန့ က်ြန္ေတာ္ၾကုိက္တဲ့ free ebooks site ထဲက တစ္ခုျဖစ္တဲ့ http://www.allitebooks.com/ မွာ စာအုပ္ရွာၾကည့္ရေအာင္။

အဲ့ေတာ့ မစခင္ လုိအပ္တာေတြကုိ setup လုပ္ၾကရေအာင္။က်ြန္ေတာ္တုိ့ ဒီwebscraping တြက္ virtualenv တစ္ခုကုိ ေဆာက္ျပီး အဲ့ထဲမွာပဲ install လုပ္မယ္ဆုိ က်ြန္ေတာ္ တျခား projectေတြနဲ့လဲမရွုပ္ပဲ web scraping လုပ္မယ္ဆုိ activate လုပ္ျပီး သုံးယံုပါပဲ။

အရင္ဆုံး pip ကုိ ရယူလုိက္ရေအာင္။က်ြန္ေတာ္ ဒီမွာ windows ကုိ မရွင္းပါဘူးေနာ္။နည္းလမ္းေတြကတူတူပါပဲ။google အားကုိးပါ။က်ြန္ေတာ္တုိ့ Pip ကုိရျပီဆုိ

pip ကေန တစ္ဆင့္ virtualenvironment ေတြ ေဆာက္ဖုိ့အတြက္ install လုပ္လုိက္ပါတယ္။

ေနာက္တစ္ဆင့္ကေတာ့ လမ္းေၾကာင္းထဲ ထည့္လုိက္ျပီး အခု webscraping အတြက္ virtualenv တည္ေဆာက္ရမယ့္အဆင့္ပါ။

အဲ့ေတာ့ က်ြန္ေတာ္တို ့webscrap ဆုိတဲ့ virtualenv ကုိတည္ေဆာက္လုိက္ျပီးေတာ့ အဲ့ထဲေရာက္ေနတာကုိ ေတြ့ရမွာပါ။မိတ္ေဆြ အသုံးမျပဳခ်င္ေတာ့ဘူးဆုိ deactivate ဆုိတဲ့ command ကုိရုိက္ထည့္လုိက္ရပါတယ္။ျပန္အသုံးျပဳခ်င္တယ္ဆုိရင္ေတာ့ workon webscrap ေပါ့ေနာ္။

အခု webscrap ဆုိတဲ့ virtualenv ထဲ ေရာက္ေနျပီမုိ့လုိ့ သူ့ထဲမွာပဲ လက္ရွိ လုိအပ္တာေတြ install လုပ္ေတာ့မွာပါ။ေနာက္ပုိင္းေတာ့ ဆက္ထည့္သြားရန္ရွိတာမုိ့ အခုထဲက လုိက္လုပ္ထားပါ။

အေပါ္က ဟာနွစ္ခု install လုပ္ျပီးျပီဆုိ။code စေရးရေအာင္

က်ြန္ေတာ္တို့ requests ကေတာ့ ကုိသြားခ်င္တဲ့ website ကုိ request လြွတ္ျပီး ျပန္လာတဲ့ response ကုိ beautifulsoup ကုိသုံးျပီး လုိခ်င္တဲ့ tags ေတြပဲ extract လုပ္တာပါ။

ok က်ြန္ေတာ္တုိ့ allitebooks.com ကုိသြားလုိက္မယ္ဆုိ search box ထဲမွာ စာအုပ္ရွာလုိက္ရင္ url မွာ http://www.allitebooks.com/?s=က်ြန္ေတာ္တုိ့ရွာတဲ့ စာအုပ္name ကုိ ေတြ့ရမွာပါ။အဲ့ေတာ့ က်ြန္ေတာ္တုိ့ အဲ့url ကုိ request လုပ္ဖုိ့လုိပါတယ္။

line 9 မွာ command line ကေန ထည့္လုိက္တဲ့ စာအုပ္name ကုိ default url နဲ့ေပါင္းျပီး request လုပ္လုိက္ပါတယ္။ရလာတဲ့ response ကုိ beautifulsoup ထဲ ထည့္လုိက္ျပီး စာအုပ္name ကုိရွာဖုိ့ လုပ္လုိက္ပါျပီ။

အဲ့ေတာ့ စာအုပ္name က ဘယ္မွာ ရွိမလဲ ကုိ ဘယ္လုိသိမလဲ ဆုိေတာ့ web browser ကေန right click နွိပ္ျပီး  view source ကုိနွိပ္လုိက္ရင စာအုပ္ေတြ ဘယ္ေနရာမွာေပါ္လဲကုိရွာလုိက္ေတာ့ article ဆုိတဲ့ tag ထဲမွာ ရွိေနတာကုိေတြ့ရမွာပါ အဲ့ေတာ့ က်ြန္ေတာ္တုိ့ အခုလုိခ်င္တာ စာအုပ္title ေတြပဲျဖစ္လုိ့ ၾကည့္လုိက္ေတာ့ h2 ထဲမွာ စာအုပ္ေခါင္းစဥ္ေတြေတြ့ရမွာပါ။

ဒါေၾကာင့္က်ြန္ေတာ္ line number 16 မွာloop ပတ္ျပီး  article အားလုံးကုိ find_all ဆုိျပီးရွာလုိက္ျပီး title ကုိ လုိခ်င္လုိ့ line 17 မွာ

article ထဲက header ထဲက h2 ရဲ့ စာသားကုိ get_text() နဲ့ ယူလုိက္ပါတယ္။.text ဆုိျပီးေရးလဲရပါတယ္။ျမင္ဖူးေအာင္လု့ိပါ။

အဲ့တာဆုိ က်ြန္ေတာ္တုိ့ စာအုပ္ရွာတဲ့ လုပ္ငန္းေတာ့ျပီးေျမာက္သြားပါျပီ။မိတ္ေဆြတုိ့ရဲ့ challenge ကေတာ့ အခုက ပထမဦးဆုံးpage ရဲ့ စာအုပ္list ပဲရေသးတာပါ။က်ြန္ေတာ္ challenge ေခါခ်င္တာေတာ့ http://www.allitebooks.com/?s=ccna  ကုိသြားလုိက္မယ္ဆုိ ေအာက္ဆုံးမွာ 3 pages ဆုိတာကုိေတြ့ရမွာပါ။အဲ့ေတာ့ က်ြန္ေတာ္တုိ့ 3 page လုံးကုိ လုိက္scrap လုပ္တဲ့ crawler ေလးေရးနုိင္ခဲ့မယ္ဆုိ page မွာလာအသိေပးနုိင္ပါတယ္။က်ြန္ေတာ္ကေတာ့ ေနာက္တစ္ပါတ္တင္ေပးပါမယ္။

how to run

Thank you..

 

Share:
Tags:

Leave a Reply