טוב בתור התחלה, הקוד הזה עובד נהדר, תודה למג'יקוד על ההמצלה על המחלקה הנפלאה הזו הקרויה cheerio כמובן הכל מתבצע ב nodejs טהור וזך. בהמשך אי"ה אעלה לשיתופיה קוד מלא שעושה את כל העובדה כולל לולאות על מנת לחלץ מויקיפדיה את כל מה שאפשר.
בגדול זאת חלק מתוכנית לעשות זחלן רשת חכם שמכיר את האתרים הגדולים ומאנדקס אותם כל אתר בייחודיות שלו, יידע לתת תשובות לשאילתות סלקט אמיתיות (ולא רק לחיפושים טקסטואליים מטומטמים) וכך לקבור את גוגל עוד לפני שיהיה להם זמן להתארגן נגדי :lol: :lol: :lol: :lol: :lol: סתם עשיתי את זה בשביל שמחת חג, ואני מקווה שזה ישמח גם את הציבור פה אני ממש לא עובד בחג.
הסבר: הקוד הזה מושך כרגע 10 קטגוריות הראשונות מויקיפדיה, עושה פילטר עם סלקטור לפי המבנה של ה HTML, ולבסוף נותן את הקטגוריה האחרונה ברשימה, באופן כזה אפשר לתשאל את ויקיפדיה בשלב הבא בלולאה, ע"י פרמטר שיגיד לו מאיזו קטגוריה להתחיל את הדף, וכך אפשר להגיע לכל הקטגוריות. את הניסיונות עשיתי עם לימיט 10 בגלל מדיניות נימוס אולם "בדבר האמיתי" אפשר למשוך 5000 במכה והלולאה תעבוד מקסימום עשרים שלושים פעם, ויש לנו את כל ויקיפדיה ביד, בלי להיות תלויים יותר בגוגל.
var request = require('request');
var cheerio = require('cheerio');
var url = 'http://he.wikipedia.org/w/index.php?title=%D7%9E%D7%99%D7%95%D7%97%D7%93:%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%95%D7%AA&limit=10';
request(url, function (error, response, html) {
if (!error && response.statusCode == 200) {
//console.log(html);
var $ = cheerio.load(html);
console.log($("li a"));
console.log($("li a")
.filter(function() {
var s = $(this).attr('title');
if (s === undefined){return false}
console.log(s);
return s.match(/קטגוריה.*/);
}).last().attr('href'));
}
});
בשלב הבא כמובן נצטרך לחלץ את הערכים באמצעות הקטגוריות, וכך נרוויח את המידע לאיזה קטגוריות שייכים הערכים, מה שיגדיל את היכולת לסווג את המידע ולהוציא סטטיסטיקות של ממש.
פורסם במקור בפורום CODE613 ב14/10/2014 12:42 (+03:00)