ב-Screaming Frog יש 3 דרכים לחלץ מידע מהאתר:
נתיב בתוכנה: Configuration – Custom – Extraction
- XPath
- CSS
- Regex (REGEXEXTRACT)
לפני הכל חשוב להבין מהי מטרת פעולת החילוץ המותאם (Custom Extraction). כל מקדמי האתרים יודעים שהסקרימינג פרוג מבצע סריקה ומציג בצורה מסודרת תגיות כגון: H1, H2, דיסקריפשן, טייטל וכו'.
התוכנה מציגה את התגיות האלה בגלל שהן יותר פופולאריות ומבוקשות בקרב המקדמים, לכן היוצרים של התוכנה עשו אותן מונגשות למרות שגם התגיות האלו חולצו בדיוק באותה צורה מתוך הקוד של האתר.
אך הרבה פעמים אנו מוצאים צורך לייצא פרטים/תגיות שלא מוצגים בברירת המחדל, באמצעות כל אחת מהשפות נוכל לבחור איזה נתונים נחלץ.
סוג המידע שניתן לייצא:
- Extract Inner HTML: מבצע חילוץ של התוכן הפנימי של קוד ה-HTML באלמנט מסוים.
- Extract HTML Element: מייצא אלמנט נבחר ואת תוכן הקוד שלו.
- Extract Text: מחלץ את תוכן הטקסט שנמצא באלמנט כלשהו (לדוגמה תוכן של מאמר מאלמנט טקסט).
- Function Value: מציג תוצאה של פונקציה שאנחנו מגדירים, לדוגמה הפונקציה count(//h2) סופרת כמה כותרות ברמה H2 יש בכל עמוד.
דוגמה לנתונים שניתן לייצא בעזרת השפות
- ייצוא תוכן של סכמות המוטמעות בעמודים (לדוגמה סכמת שאלות ותשובות, localbusiness וכדומה).
- חילוץ טלפונים, מיילים, מחירים ופרטים אחרים.
- חילוץ התכנים של תגיות ה-Hreflang.
- חילוץ תגיות של כותרות שלא מוצגות בברירת מחדל: תגיות H5, H4, H3.
- תכני טקסט מסוימים (לדוגמה טקסט של מאמר).
XPath
מהו XPath וכיצד משתמשים בו?
XPath הינה שפת שאילתא שהוגדרה ע"י W3C שהמטרות העיקריות שלה הן:
- בחירת חלקים מתוך מסמך XML.
- חישוב ערכים מתוכן מסמך ה-XML (כמו לדוגמה מספרים, ערכים בוליאניים או מחרוזות).
פקודות לחילוץ נתונים באמצעות XPath:
פקודה | הסבר | סוג הנתונים לחילוץ |
---|---|---|
//h3 | חלץ את כל הכותרות ה-H3 | Extract Inner HTML |
//*[@itemtype]/@itemtype | מציג את סוגי הסכמות בכל עמוד | Extract Inner HTML |
count(//h2) | סופר כמה כותרות מסוג H2 יש בכל עמוד | Function Value |
//*[@hreflang] | ייצוא התוכן שנמצא בתגיות ה-HREFLANG | Extract Inner HTML |
/descendant::h3[2] | מייצא את כורת ה-H3 השניה של כל עמוד | Extract Inner HTML |
/descendant::h3[position() >= 0 and position() <= 5] | מציג את 5 כותרות ה-H3 הראשונות בכל עמוד | Extract Inner HTML |
(//a)[4] | מייצא את הלינק הרביעי של כל עמוד | Extract Inner HTML |
//iframe/@src | מייצא את ה-IFRAME מהעמודים | Extract Inner HTML |
תוסף שימושי לחילוץ Xpath באופן פשוט: Relative XPath Helper
או שאפשר למצוא את הקוד של החלק שרוצים לייצא דרך ה-Inspect
לחיצה על ה-DIV שמסמן את החלק הרלוונטי שרוצים לייצא
אחרי זה: Copy ואז: Copy full xpath (ואת זה מדביקים בהגדרה של החילוץ)
RegEx
מהו RegEx ומתי משתמשים בו?
RegEx הינה שפה רגולרית שמוגדרת בתור מספר מחרוזות אשר כפופות לתקנות תחביר ספציפיות.
ביטוי רגולרי: רצף של תווים שהמאפיין העיקרי שלהם כולל "תווי מטא" לצד תווים רגילים (כמו אותיות ומספרים).
תווי המטא נבדלים לפי הגדרה מתווים רגילים שמסמלים את עצמם (לדוגמה האות A היא תו אשר מסמל את האות עצמה), תווי מטא מסמלים ערכים אחרים שאינו הם עצמם (לדוגמה: ^ מסמל את הערך של “תחילת השורה”).
פקודות לחילוץ נתונים באמצעות RegEx:
(?!<a[^>]*?>)(מילת מפתח)(?![^<]*?<\/a>)
<a.*?</a>
</?[hH]4[^>]*>
הפקודה הזאת לא קשורה לסקרימינג פרוג אבל יכולה לשמש במקומות אחרים
Source url:
/blogl/.*
יכלול את כל סוגי העמודים שנכללים תחת הסלאג /my-url/ – לדוגמה:
domain.com/blog/post1
domain.com/blog/post2
ויפנה אותם לעמוד היעד הרוונטי שנרצה
אך במידה ונרצה לעשות הפניה גורפת דינמית מסלאג מסוים לסלאג אחר בהתאמה – לדוגמה:
/oldblog/post1
/oldblog/post2
ל:
/newblog/post1
/newblog/post2
הפקודות מה-Source url יהיו: (במידה ומדובר בסלרג של תת-תת קטגוריה אז מוסיפים נקודה-כוכבית לפני הסלאש)
/oldblog/(.*)
.*/oldblog/(.*)
ומפנים ל-Target url:
/newblog/$1
היתרון העיקרי של שימוש בשפות RegEx, XPath ו-CSSPath הוא חיסכון בזמן. זה חוסך לנו עבודה של סריקה ויצוא נתונים באופן ידני, הן מאפשרות לבצע סריקה אפקטיבית וממוקדת.
בשונה ממקדמי אתרים אשר משתמשים בשפת ה-RegEx למטרות מאוד ספציפיות, אנשים העוסקים בתכנות נוהגים להימנע משימוש בשפה זו מפני שהיא כוללת כפי שנאמר בהקדמה תווי מטא – תווים אשר מייצגים ערך שונה משל עצמם, מה שמקשה על הקריאה והעבודה עם השפה.

CSSPath
Cascading Style Sheets = גיליונות סגנון מדורגים, זוהי שפה המתארת איך מוצגים האלמנטים של קוד ה-HTML.
פקודות ודוגמאות לייצוא נתונים באמצעות CSSPath
CSS Selector | הסבר | דוגמה לערך |
---|---|---|
.class | מייצא את כל האלמנטים שה-Class שלהם שווה ל-new | .new |
* | מייצא את כל האלמנטים | * |
a | מציג אנקורים עם "title attribute" | a[title] |
#id | מייצא את האלמנטים בעלי ID ששווה ל-word | #word |
[attribute$=value] | מייצא קישורים של PDF | a[href$=”.pdf”] |
[attribute~=value] | מייצא את כל האלמנטים שה-lang attribute שלהם שווה ל-HE | [lang|=he] |
*צריך לבדוק באילו שמות וערכים משתמש האתר בקוד ה-CSS שלו ולרשום את הערכים בהתאמה, אני אישית נוהג פחות להשתמש בשפה הזאת.
מושגים
REGEXTRACT או בקיצור RegEx: פונקציית מחרוזת אשר משתמשים בה לפעולות חילוץ וחיפוש גורף של ביטוי רגולרי. למידע נוסף על הנושא
כלי להתנסות בשפה – RegExr
World Wide Web Consortium (W3C) הינו הארגון הראשי שהוקם ע"י טים ברנרס לי להגדרת תקנים של W3C.
הסלקטורים של ה-CSS: תבניות אשר מאפשרות לבחור אלמנטים עיצוביים.
Meta characters – תווי מטא כוללים: לוכסן אחורי (\), נקודה (.), כוכבית (*), משולש עילי (^) ועוד תווים בסגנון המאפשרים לבצע בעמוד הבנוי באמצעות קוד html טיפול בנתונים (בעיקר החלפות וחיפושים).
הם מייצגים ערך אחר מאשר עצמם