كيف ساعدني بناء Web Scraper باستخدام Beautiful Soup في الحصول على أول وظيفة تقنية
مقدمة: لماذا قد يغيّر مشروع جانبي مسارك المهني؟
الحصول على الوظيفة الأولى ليس أمراً سهلاً، خصوصاً في المجال التقني حيث لا يكفي أن تجيب جيداً في المقابلة، بل يجب أيضاً أن تثبت قدرتك العملية على تنفيذ المهام المطلوبة. هنا تبرز قيمة المشاريع الجانبية؛ فهي تمنحك دليلاً ملموساً على مهاراتك، وتساعدك على بناء قصة مهنية قوية يمكن عرضها في السيرة الذاتية وأثناء المقابلات.
في هذه المقالة، نستعرض تجربة عملية في بناء Web Scraper باستخدام مكتبة Beautiful Soup، ثم توظيف هذا المشروع لإبراز المهارات التقنية والحصول على أول عرض وظيفي. الفكرة ليست في نسخ التجربة حرفياً، بل في فهم المنهجية التي تجعل من مشروع بسيط أداة فعالة لفتح أبواب العمل.

ما المشروع الذي تم بناؤه؟
عند البحث عن وظيفة أولى، كان الهدف هو إيجاد وسيلة عملية للتميّز بين المتقدمين، خاصة مع وجود منافسة عالية حتى لدى أصحاب التدريب الجيد. لذلك تم اختيار مشروع جانبي يجمع بين البرمجة وتحليل البيانات، ويظهر القدرة على التعامل مع بيانات واقعية من الإنترنت.
تمحورت الفكرة حول استخراج بيانات أسهم من موقع NASDAQ، ثم تخزينها وتحليلها وعرضها بصرياً. هذا النوع من المشاريع يثبت أكثر من مهارة في آن واحد، مثل:
- القدرة على جمع البيانات من الويب.
- تنظيف البيانات وتنظيمها.
- استخدام
Pythonفي الأتمتة. - إجراء تحليل إحصائي مبدئي.
- إنشاء تصورات بصرية تساعد على تفسير النتائج.

كيف تم بناء أداة كشط الويب باستخدام Beautiful Soup؟
اختيار مصدر البيانات المناسب
قبل كتابة أي سطر برمجي، من المهم تحديد نوع البيانات المطلوبة ومصدرها. في هذه التجربة، كان الاهتمام موجهاً نحو البيانات المالية، لذلك وقع الاختيار على موقع NASDAQ باعتباره مصدراً معروفاً لبيانات الأسهم.
تم البدء بمحاولة استخراج بيانات سهم Facebook من صفحة مخصصة للأسعار. الفكرة الأساسية كانت بسيطة: إرسال طلب إلى الصفحة، قراءة محتواها، ثم تحليل بنية HTML واستخراج العناصر التي تحتوي على اسم السهم وسعره.
مثال أولي على الكود
#import libraries
import urllib.request
from bs4 import BeautifulSoup
#specify the url
quote_page = 'https://www.nasdaq.com/symbol/fb/after-hours'
# query the website and return the html to the variable 'page'
page = urllib.request.urlopen(quote_page)
# parse the html using beautiful soup and store in the variable 'soup'
soup = BeautifulSoup(page, 'html.parser' )
# Take out the <div> of name and get its value
name_box = soup.find( 'h1' )
#define variable for where we'll store the name of our stock
name = name_box.text.strip() # strip() is used to remove starting and trailing
print(name)
# get the index price
price_box = soup.find( 'div' , attrs={ 'class' : 'qwidget-dollar' })
# define variable for where we'll store the price of our stock
price = price_box.text
print(price)
هذا المثال يوضح المبدأ الأساسي: استخدام urllib.request لجلب الصفحة، ثم تمريرها إلى BeautifulSoup() لتحليلها، وبعد ذلك استخراج البيانات المطلوبة عبر find(). ورغم بساطة هذا النهج، فإنه يضع أساساً قوياً لأي مشروع أكبر في مجال استخراج البيانات من الويب.
توسيع المشروع من مجرد استخراج إلى تحليل فعلي
استخراج سعر واحد من صفحة ويب خطوة جيدة للتعلّم، لكنها غير كافية إذا كان الهدف هو تقديم مشروع مقنع لأصحاب العمل. لذلك تم تطوير الفكرة لتصبح أكثر فائدة من الناحية التحليلية.
بعد فترة من العمل، أصبح المشروع يؤدي المهام التالية:
- استخراج أسعار أسهم ثلاث شركات على مدار
30يوماً. - إضافة البيانات يومياً إلى ملف
CSV. - استيراد الملف إلى
DataFrameباستخدامpandas. - حساب متوسط السعر لكل سهم خلال آخر
30يوماً. - تصوير تغيّر الأسعار باستخدام
matplotlib.
تصور منطقي لهيكل المشروع
#import libraries
import pandas as pd
from datetime import date, datetime, timedelta
import math
import numpy as np
#Scrape and append three companies' stock prices to a pandas dataframe over the course of 30 days
#1) Scrape stock prices for Company A, Company B, and Company C
#2) Append each stock price for the day to a separate column within a CSV using ExcelWriter (pandas function)
#3) Include a single column in the CSV for the date
#4) Repeat until you have 30 days' worth of data for each company
#Calculate the average price for each stock over the course of the 30 days in the dataframe
#1) Import CSV file back into the script as a dataframe
#2) Generate basic statistics (describe() function) for each column or use the .mean() function if you're looking for just the average
#Visualize the average stock price over the last 30 days using matplotlib
#1) Create a different Time Series line plot for Company A, Company B, and Company C
هذا التصور يبيّن أن قيمة المشروع لا تكمن فقط في الكشط، بل في دورة العمل الكاملة: جمع البيانات، تخزينها، تحليلها، ثم تحويلها إلى مخرجات قابلة للفهم والعرض.
لماذا هذا النوع من المشاريع مهم مهنياً؟
المشاريع الجانبية الناجحة ليست تلك التي تبدو معقدة فحسب، بل تلك التي تبرهن على فهم عملي لمشكلة حقيقية. في هذا المثال، أظهر المشروع قدرة صاحبه على التعامل مع بيانات عامة، وتحويلها إلى معلومات مفيدة عبر الأتمتة والتحليل.
هذا مهم خصوصاً في وظائف مثل:
- محلل بيانات
Data Analyst. - محلل أعمال
Business Analyst. - متخصص ذكاء أعمال
BI Specialist. - مطور أدوات داخلية للأتمتة.
كما أن المشروع يمنح صاحبه فرصة ممتازة للحديث عن تحديات حقيقية، مثل تغيّر بنية الصفحات، وصياغة البيانات، واختيار المقاييس المناسبة للتحليل.
أهم الدروس المستفادة من التجربة

1) مكتبة Beautiful Soup أداة ممتازة للتعلّم وبناء النماذج الأولية
تعد Beautiful Soup من المكتبات المناسبة للمبتدئين والمتوسطين في كشط الويب، لأنها تسهّل قراءة عناصر HTML واستخراج البيانات منها بسرعة. قد لا تكون الحل الأمثل لكل مشروع كبير، لكنها مناسبة جداً لتعلّم الفكرة الأساسية وإنجاز مشروع عملي مقنع.
2) مسار العمل في البيانات أوضح مما يبدو
أي مشروع بيانات جيد يمر غالباً بثلاث مراحل رئيسية:
- جمع البيانات: من قاعدة بيانات أو واجهة
APIأو عبرWeb Scraping. - تنسيق البيانات: باستخدام
ExcelأوDataFramesأو أدوات التنظيف والتحويل. - استخراج الرؤى: من خلال الإحصاء، والتصورات البصرية، والتوصيات العملية.
فهم هذا التسلسل يجعلك أكثر قدرة على بناء مشاريع مفهومة ومفيدة، ويمنحك لغة مهنية واضحة أثناء التقديم للوظائف.
3) بناء المشروع وحده لا يكفي
كثيرون ينجزون مشاريع جيدة، لكنهم لا يعرفون كيف يشرحونها. في الواقع، المهارة الحاسمة ليست فقط في كتابة الكود، بل في الإجابة عن ثلاثة أسئلة أساسية:
- ماذا بنيت؟
- لماذا بنيته؟
- كيف يمكن أن تستفيد منه الشركة التي تتقدم إليها؟
كلما كانت إجابتك عن هذه الأسئلة واضحة، زادت قيمة المشروع في أعين مسؤولي التوظيف.
كيف تستفيد من المشروع في السيرة الذاتية؟

إضافة المشروع إلى السيرة الذاتية يجب أن تتم بشكل ذكي. لا يكفي أن تكتب أنك أنشأت Web Scraper، بل عليك أن توضح أثر المشروع والمهارات التي أظهرها.
أفضل طريقة لعرض المشروع
- خصص قسماً مستقلاً بعنوان المشاريع الجانبية أو
Side Projects. - اذكر التقنيات المستخدمة مثل
PythonوBeautiful Soupوpandas. - أضف نقاطاً مختصرة توضّح نوع البيانات التي جرى التعامل معها وما الذي تم إنجازه بها.
أمثلة لصياغة نقاط قوية في السيرة الذاتية
- بناء أداة
Web ScraperباستخدامPythonلاستخراج بيانات مالية من الويب بشكل آلي. - تجميع بيانات أسهم يومية وكتابتها في ملف
CSVقابل للتحليل والمعالجة. - تنفيذ تحليل إحصائي مؤتمت للبيانات واستخدام التصورات البصرية لعرض الاتجاهات.
- تنظيم البيانات وتحويلها إلى نموذج عملي يصلح لدعم قرارات قائمة على البيانات.
الصياغة الجيدة في السيرة الذاتية يجب أن تركز على النتائج والمهارات، لا على الوصف العام فقط.
كيف تستعد للمقابلة بالاعتماد على مشروعك؟
المشروع يصبح أكثر قوة عندما يتحول إلى قصص مهنية جاهزة للاستخدام في المقابلة. لذلك، من الضروري تحديد المهارات الفعلية التي استخدمتها، ثم ربطها بمتطلبات الوظيفة.
المهارات التي أبرزها المشروع
PythonWeb Scraping- تنظيف البيانات
Data Wrangling - أتمتة المهام
Automation - تحليل البيانات
Data Analysis - التحليل الإحصائي
Statistical Analysis - التعامل مع
CSVوExcel - التصور البصري للبيانات
ربط المهارات بالوصف الوظيفي
إذا ورد في وصف الوظيفة مثلاً أن المطلوب هو بناء نماذج بيانات أو تقارير آلية أو لوحات عرض بصرية، فيمكنك استخدام هذا المشروع لإثبات أنك نفذت بالفعل أجزاء مشابهة، حتى لو كان المشروع شخصياً.
الفكرة هنا هي تحويل كل جزء من المشروع إلى دليل على امتلاك مهارة عملية. فعندما تتحدث عن أتمتة جمع البيانات، فأنت تبرز قدرتك على تقليل العمل اليدوي. وعندما تشرح كيفية حساب المتوسطات أو إنشاء الرسوم، فأنت تؤكد فهمك للتحليل وتفسير البيانات.
استخدم أسلوب S.T.A.R. في الإجابات
من أفضل الطرق لشرح المشروع في المقابلات استخدام إطار S.T.A.R.:
- Situation: ما المشكلة أو الدافع؟
- Task: ما المهمة التي قررت تنفيذها؟
- Action: ما الخطوات التي اتخذتها عملياً؟
- Result: ما النتيجة أو الأثر الذي حققته؟
هذا الأسلوب يجعل حديثك أكثر تنظيماً واحترافية، ويمنح المحاور صورة واضحة عن طريقة تفكيرك وتنفيذك.
من المشروع إلى عرض العمل

عند بدء التقديم، أصبح المشروع ورقة قوة حقيقية. وخلال المقابلات، كان الاهتمام موجهاً خصوصاً إلى الجوانب المتعلقة بتنظيم البيانات والتحليل المؤتمت. السبب واضح: أصحاب العمل لا يبحثون فقط عن شخص يعرف كتابة الكود، بل عن شخص يمكنه استخدام الأدوات التقنية لحل مشكلات عملية.
عندما تتمكن من شرح مشروعك بثقة، وربطه بمهام الوظيفة، يصبح لديك ما هو أهم من الخبرة التقليدية: لديك برهان عملي على قدرتك على التعلم والتنفيذ وتحقيق نتائج.
كيف تختار مشروعك الجانبي القادم؟

إذا كنت تبحث عن أول وظيفة في التقنية، فابدأ بمشروع يحقق المعايير التالية:
- يعالج مشكلة مفهومة وواضحة.
- يرتبط بمجال الوظائف التي تستهدفها.
- يُظهر أكثر من مهارة عملية في وقت واحد.
- يمكن شرحه بسهولة في السيرة الذاتية والمقابلات.
- ينتج مخرجات ملموسة مثل ملف بيانات أو لوحة عرض أو تقرير.
ليس المطلوب أن يكون المشروع معقداً أو ضخماً، بل أن يكون حقيقياً ومدروساً ومفيداً. مشروع صغير لكنه متماسك قد يكون أكثر تأثيراً من مشروع ضخم غير مكتمل أو غير مفهوم.
نصائح عملية لتحسين فرص القبول لدى Google AdSense
إذا كنت تنشر محتوى تقنياً على مدونة أو منصة نشر، فاحرص على أن يكون المقال:
- أصيلاً وغير منسوخ.
- مفيداً للقارئ ويجيب عن أسئلة واضحة.
- منظماً بعناوين دقيقة وسهلة التصفح.
- خاليًا من الحشو والمبالغة.
- مدعوماً بأمثلة واقعية وأكواد مفهومة.
المحتوى التقني عالي الجودة لا يخدم تحسين الظهور في محركات البحث فقط، بل يرفع أيضاً فرص القبول الإعلاني لأنه يعكس احترافية وموثوقية وتجربة استخدام جيدة.
الخلاصة التقنية
بناء مشروع Web Scraper باستخدام Beautiful Soup ليس مجرد تمرين برمجي، بل نموذج فعّال لإثبات الجدارة المهنية عندما تكون الخبرة العملية محدودة. القيمة الحقيقية لهذا النوع من المشاريع تكمن في اكتمال الدورة: جمع البيانات، تنظيمها، تحليلها، ثم تحويلها إلى قصة مهنية مقنعة. إذا أحسنت اختيار المشروع، وقدمته جيداً في السيرة الذاتية، وربطته بمتطلبات الوظيفة أثناء المقابلة، فقد يصبح مشروع واحد مدروس سبباً مباشراً في حصولك على أول فرصة مهنية في المجال التقني.