20-10-2015, 16:36
|
|
|
|
חבר מתאריך: 12.04.06
הודעות: 2,021
|
|
אני מתאר לעצמי ששימי התכוון להגיד שמה שאתה מנסה לבצע זה לא משהו פשוט, כזה שאפשר להגיע לתוצאה "סתם ככה".
מכיוון שאמרת בהתחלה שאתה לא רוצה להשתמש במבנה של הHTML כדי לזהות את האיזור של הכתבה, שימי ציין בפנייך שזה לא יהיה כל כך פשוט לזהות את החלק של הכתבה עצמה רק על פי הטקסט באתר.
בכל מקרה,
כדי לעשות את זה "בלי לדעת באמת מה המבנה של העמוד", תצטרך לחשוב על אלגוריתם (מערכת חכמה, כמו ששימי קרא לזה), שיהיה לו את הסיכוי הגבוה ביותר להשיג את התוצאה שאתה רוצה.
שים לב שסביר להניח שזה אף פעם לא יהיה מדוייק ב100% כמו שביקשת בהודעה הראשונה שלך.
אפשר בהחלט ללכת בדרך של שלילה.
הנה כמה רעיונות שעלו לי -
להוריד אלמנטים שבהם בטוח לא ימצא התוכן,
כמו head, script, link, object, video, audio, form , input וכו'. בקיצור, כל אלמנט שהמטרה שלו לא להכיל טקסט.
אחרי זה, אפשר לנקות אלמנטים שנותרו ריקים (שכנראה היו אלמנטי-אב של כל מה שהסרנו).
בשלב מסויים, תוכל להמיר חלק מהאלמנטים לטקסט נקי, לדוגמא -
p , b , strong , i , u , span יוסרו ורק התוכן שביניהם ישאר.
ואז נניח דבר כזה:
קוד:
<div><p>hi there, <span>this is an <strong>example</strong></span></p></div>
יהפוך לדבר כזה:
קוד:
<div>hi there, this is an example!</div>
שלב נוסף יהיה לזהות אידים/קלאסים של אלמנטים שמכילים בשם משהו שרומז שאין שם את תוכן הכתבה.
לדוגמא: nav, menu , facebook , sidebar וכו'.
ובסוף,
אולי לעבור על האלמנטים ולסנן לפי אורך הטקסט שנשאר.
לדוגמא, אלמנט שיש בו בסך הכל 10 תווים, כנראה שאין בו תוכן של כתבה.
אבל זה יהיה צריך להיות חכם יותר, אולי משהו סטטיסטי - לדוגמא לבצע איזה חישוב על אורכי הטקסטים שיש בכל אלמנט, ולמצוא נוסחא כדי להסיר אלמנטים שביחס לשאר נראה שהם מכילים טקסטים קצרים יותר.
טיפ שאולי יעזור לך להתקדם עם זה - אל תעבוד על אתרים בעברית/באנגלית.
תיכנס לאתרים בשפה שאתה לא מבין, לדוגמא ערבית/רוסית/צרפתית וכו'... ומשם תנסה לנתח את כל הפעולות שהמוח שלך עושה כדי לזהות איפה התוכן של הכתבה. בשפה זרה אתה לא תוכל לזהות את התוכן לפי טקסט מוכר. אתה תהיה חייב לזהות מאפיינים שונים שדרכם אתה לומד איזה איזור באתר מכיל את התוכן. (מה החלק העיקרי? איפה התפריט? יש ציטוטים בטקסט? יש כותרות? וכו'...)
ו...אחרי שתגיע לתוצאה, תשתף כאן!
מעניין מאוד לראות איך זה יעבוד.
_____________________________________
|