تعد صفحات الويب مصدراً مهماً لكثير من البيانات حيث تحوي عدد كبير من الجداول والتي يتم تحديثها بصورة دائمة، بالتالي نحتاج لقراءة هذه الجداول بشكل آلي بإستخدام لغات البرمجة. في هذا المقال نستعرض كيف يمكن أن نستخدم لغة آر R لإستخراج الجداول من صفحات الويب وفق الخطوات التالية:
1. تفعيل الحزم (packages) المطلوبة
سوف نستخدم الحزمة rvest وهي حزمة متخصصة في استخراج البيانات من صفحات الويب وتعمل بالتكامل مع بعض الحزم الأخرى مثل magrittr.
In: library(rvest)
2. استعراض الجداول المتاحة في صفحة الويب المحددة
للقيام بذلك، سوف نستخدم الكود التالي:
In: webpage = read_html("https://en.wikipedia.org/wiki/World_population") Tables = html_nodes(webpage, "table") Tables
والذي يعطي الجداول الموجودة على صفحة ويكيبيديا كما يلي:
3. إستخراج الجدول المطلوب ( مثلاً، رقم 2 ) من القائمة المعطاه.
In: Table = webpage %>% html_nodes("table") %>% .[2] %>% html_table(fill = TRUE,header=F)
4. تحويل الجدول الى data frame وتهيئتها للتحليل
In: mydata = as.data.frame(Table) attach(mydata) names(mydata) tit=gsub("\\[10]", ",in 2000", X1[1]) x=as.numeric(gsub(",", "", X3[3:12])) Lab=gsub("\\*", "", X2[3:12]) pie(x,main=tit,lab="",radius = 1,col=rainbow(10)) legend(x=-3,y=1,Lab,cex=.8,bty="n",fill=rainbow(10))
والذي يعطي النتيجة:
مثال آخر:
لاستخراج بيانات دوري الأمير محمد بن سلمان من موقع الإتحاد السعودي لكرة القدم. سوف نستخدم الكود التالي:
In: webpage = read_html("http://www.saff.com.sa/ar-sa/league/saudi-professional-league") Tables = html_nodes(webpage, "table") Table = webpage %>% html_nodes("table") %>% .[1] %>% html_table(fill = TRUE,header=F) SPLdata = as.data.frame(Table) attach(SPLdata) Points=as.numeric(X10[2:17]) Teams=X2[2:17] barplot(Points,names.arg=Teams,horiz=TRUE,las=2,xlim=c(0,30),col="skyblue")
والذي يعطي النتيجة:
جهود مشكور يا اخ عزيز وربنا يبارك فيكم ، انا بدرس علم البيانات من خلال datacamp
أرجو منك النصحية لصبح عالم بيانات .