تريد المساعدة؟ إليك خياراتك:","كرانش بيس","نبذة عنا","شكراً للجميع على الدعم الرائع!","روابط سريعة","برنامج الانتساب","بريميوم","ProxyScrape تجربة متميزة","مدقق الوكلاء عبر الإنترنت","أنواع الوكلاء","الدول الوكيلة","حالات استخدام الوكيل","مهم","سياسة ملفات تعريف الارتباط","إخلاء المسؤولية","سياسة الخصوصية","الشروط والأحكام","وسائل التواصل الاجتماعي","فيسبوك","لينكد إن","تويتر","كورا","برقية","الخلاف","\n © جميع الحقوق محفوظة © 2025 - ثيب بي في | بروغسترات 18 | 2812 ميكلين | بلجيكا | ضريبة القيمة المضافة BE 0749 716 760\n"]}
لقد أصبح كشط الويب مهارة حيوية لمطوّري Python ومحللي البيانات وأي شخص يعمل مع مجموعات البيانات. عندما يتعلق الأمر بالبيانات المنظمة والغنية، غالبًا ما تكون الجداول الموجودة على مواقع الويب منجمًا من الذهب للمعلومات. سواءً كنت تبحث في الويب عن كتالوجات المنتجات أو الإحصاءات الرياضية أو البيانات المالية، فإن القدرة على استخراج بيانات الجداول وحفظها باستخدام Python هي أداة لا تقدر بثمن.
يأخذك هذا الدليل العملي خطوة بخطوة خلال عملية كشط الجداول من المواقع الإلكترونية باستخدام Python. بحلول النهاية، ستعرف كيفية استخدام المكتبات الشائعة مثل الطلبات والحساء الجميل وحتى الباندا للوصول إلى بيانات الجداول وتخزينها بتنسيقات قابلة لإعادة الاستخدام مثل ملفات CSV.
قبل أن ننتقل إلى التفاصيل التقنية، إليك ما ستحتاج إليه للمتابعة:
سنستخدم الأمر pip لتثبيت المكتبات المطلوبة. ما عليك سوى تشغيل الأمر التالي في جهازك الطرفي لإكمال التثبيت:
طلبات تثبيت طلبات شوربة جميلة 4 بانداس
الخطوة الأولى في أي مشروع لكشط الويب هي تحليل بنية الموقع الإلكتروني المستهدف. في هذا المثال، سنقوم في هذا المثال بكشط البيانات من موقع ويب نموذجي يحتوي على جدول يعرض ترتيب فرق الهوكي. فيما يلي معاينة للجدول:
إليك كيفية ظهور هذا الجدول داخل بنية HTML.
الخطوة الأولى هي جلب صفحة الويب التي تريد كشطها. سنستخدم مكتبة الطلبات لإرسال طلب HTTP واسترداد محتوى HTML من موقع الويب الوهمي الذي نستخدمه للحصول على محتوى الجدول
url = "https://www.scrapethissite.com/pages/forms/"
response = requests.get(url)
if response.status_code == 200:
print("Page fetched successfully!")
html_content = response.text
else:
print(f"Failed to fetch the page. Status code: {response.status_code}")
exit()
في HTML، الجدول هو طريقة منظمة لتقديم البيانات في صفوف وأعمدة، تمامًا كما هو الحال في جدول البيانات. يتم إنشاء الجداول باستخدام <table>
ومحتواها مقسم إلى صفوف (<tr>
) والخلايا (<td>
لخلايا البيانات أو <th>
للخلايا الرأسية). إليك تفصيل سريع لكيفية عمل بنية الجدول:
<table>
تعمل كحاوية لجميع الصفوف والخلايا.<tr>
(صف الجدول) يمثل شريحة أفقية من الجدول.<td>
تحتوي على قيم بيانات فردية (أو <th>
علامات للرؤوس). على سبيل المثال، في هذا النص البرمجي، نحدد موقع <table>
مع فئة معينة (صنف="جدول"
) واستخراج صفوفها وخلاياها باستخدام حساء جميل. يتيح لنا ذلك سحب البيانات بشكل منهجي وإعدادها للتحليل أو الحفظ.
soup = BeautifulSoup(html_content, "html.parser")
table = soup.find("table", {"class": "table"})
if not table:
print("No table found on the page!")
exit()
في هذه الخطوة، سنقوم بحفظ بيانات الجدول المستخرجة في ملف CSV لاستخدامها في المستقبل وعرضها أيضًا كإطار بيانات بانداس DataFrame حتى تتمكن من رؤية كيفية تنظيم البيانات. يسمح لك حفظ البيانات كملف CSV بتحليلها لاحقًا في أدوات مثل Excel أو جداول بيانات Google أو Python نفسها.
headers = [header.text.strip() for header in table.find_all("th")]
rows = []
for row in table.find_all("tr", class_="team"):
cells = [cell.text.strip() for cell in row.find_all("td")]
rows.append(cells)
df = pd.DataFrame(rows, columns=headers)
csv_filename = "scraped_table_data_pandas.csv"
df.to_csv(csv_filename, index=False, encoding="utf-8")
print(f"Data saved to {csv_filename}")
عند تشغيل هذا الرمز، سينشئ بانداس ملفًا باسم كشط_جدول_بيانات_جدول_بيانات.csv
في دليل العمل الخاص بك، وستتم طباعة البيانات المستخرجة في وحدة التحكم على النحو التالي:
اسم الفريق سنة الفوز والخسارة في الوقت بدل الضائع خسارة في الوقت بدل الضائع فوز % أهداف ل (GF) أهداف ضد (GA) + / -
0 بوسطن بروينز 1990 44 24 0.55 299 264 35
1 بوفالو سيبرس 1990 31 30 0.388 292 278 14
2 كالجاري فليمز 1990 46 26 26 0.575 344 263 81
3 شيكاغو بلاكهوكس شيكاغو 1990 49 23 0.613 284 211 73
4 ديترويت ريد وينغز 1990 34 38 0.425 273 298 -25
فيما يلي البرنامج النصي الكامل من بايثون لكشط بيانات الجدول من موقع ويب، وحفظها في ملف CSV، وعرض البيانات المستخرجة. يدمج هذا النص البرمجي جميع الخطوات التي يغطيها هذا الدليل في سير عمل واحد متماسك.
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://www.scrapethissite.com/pages/forms/"
response = requests.get(url)
if response.status_code == 200:
print("Page fetched successfully!")
html_content = response.text
else:
print(f"Failed to fetch the page. Status code: {response.status_code}")
exit()
soup = BeautifulSoup(html_content, "html.parser")
table = soup.find("table", {"class": "table"})
if not table:
print("No table found on the page!")
exit()
headers = [header.text.strip() for header in table.find_all("th")]
rows = []
for row in table.find_all("tr", class_="team"):
cells = [cell.text.strip() for cell in row.find_all("td")]
rows.append(cells)
df = pd.DataFrame(rows, columns=headers)
csv_filename = "scraped_table_data_pandas.csv"
df.to_csv(csv_filename, index=False, encoding="utf-8")
print(df.head())
print(f"Data saved to {csv_filename}")
يطلعك هذا الدليل على هذه العملية خطوة بخطوة: فهم بنية الموقع الإلكتروني، واستخراج البيانات، وحفظها لتحليلها. سواء كنت تقوم ببناء مجموعات بيانات للبحث، أو أتمتة جمع البيانات، أو ببساطة استكشاف إمكانيات كشط الويب، فإن إتقان هذه التقنيات يفتح لك عالمًا من الفرص.
أثناء عملية الكشط، قد تواجه تحديات مثل حظر بروتوكول الإنترنت أو حدود الأسعار التي تفرضها المواقع الإلكترونية. هنا تصبح البروكسيات حاسمة. تسمح لك البروكسيات بـ
ProxyScrape تقدم مجموعة واسعة من البروكسيات، بما في ذلك البروكسيات السكنية والمتميزة والمخصصة والمتنقلة، المصممة خصيصًا لكشط الويب. يمكن أن تساعدك حلول البروكسي الموثوقة والقابلة للتطوير في التعامل مع مشاريع الكشط على نطاق واسع دون انقطاع، مما يضمن جمع البيانات بسلاسة وكفاءة.