تحليل البيانات بلغة Swift: إنشاء محلل بيانات في 30 دقيقة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

لماذا Swift هي اللغة المثالية للتحليل التي لا يتحدث عنها أحد

\n\n

عندما يتعلق الأمر بجمع البيانات من الإنترنت، يتبادر إلى ذهن الجميع فورًا لغة Python مع مكتباتها BeautifulSoup وScrapy. ولكن ماذا لو أخبرتك أن Swift، اللغة التي تستخدمها لتطبيقات iOS، قادرة على فعل ما لا يقل عن ذلك؟ نعم، لم تسمع خطأ. تحليل البيانات بلغة Swift ليس مجرد أمر غريب، بل هو أداة قوية يمكنها العمل بسرعة تزيد 2-3 مرات عن Python في نفس المهام. واليوم سنثبت ذلك.

\n\n

في هذه المقالة، ستتعلم كيفية إعداد البيئة، كتابة أول محلل لك بلغة Swift، معالجة الأخطاء وحفظ البيانات. لن نستخدم تجريدات معقدة - فقط كود نقي وواضح يمكنك تشغيله خلال 15 دقيقة.

\n\n

ما هو التحليل والاستخراج بلغة Swift؟

\n\n

تحليل Swift هو عملية استخراج بيانات منظمة من صفحات الويب أو المستندات باستخدام لغة البرمجة Swift. على عكس استخراج الويب التقليدي بلغة Python، تقدم Swift تكاملًا أصليًا مع iOS/macOS، مما يجعلها مثالية لإنشاء تطبيقات تجمع البيانات بنفسها.

\n\n

السيناريوهات الرئيسية لاستخدام استخراج البيانات بلغة Swift:

\n
    \n
  • جمع الأسعار من المتاجر الإلكترونية لمراقبة المنافسين
  • \n
  • استخراج بيانات الاتصال من مواقع الدلائل
  • \n
  • تحليل خلاصات الأخبار والمدونات
  • \n
  • إنشاء واجهات برمجة تطبيقات خاصة للتطبيقات (عند عدم وجود API رسمي)
  • \n
\n\n

للتحليل بلغة Swift، سنستخدم تقنيتين رئيسيتين: URLSession لتحميل صفحات HTML ومكتبة SwiftSoup لتحليل مستند HTML. SwiftSoup هي نظير لـ BeautifulSoup الخاصة بـ Python، ولكنها مكتوبة بلغة Swift الخالصة.

\n\n

تثبيت وإعداد المشروع

\n\n

للبدء، سنحتاج إلى تثبيت SwiftSoup. أسهل طريقة هي عبر Swift Package Manager. أنشئ مشروعًا جديدًا أو افتح مشروعًا موجودًا في Xcode، ثم أضف التبعية:

\n\n
// في Package.swift\ndependencies: [\n    .package(url: "https://github.com/scinfu/SwiftSoup.git", from: "2.6.0")\n]
\n\n

أو، إذا كنت تعمل عبر SPM بدون Xcode، فقط أضف السطر أعلاه إلى ملف Package.swift الخاص بك.

\n\n

طريقة بديلة هي استخدام CocoaPods:

\n
pod 'SwiftSoup', '~> 2.6.0'
\n\n

بعد التثبيت، قم باستيراد المكتبة إلى كودك:

\n
import SwiftSoup\nimport Foundation
\n\n

تم! الآن يمكننا البدء في كتابة المحلل.

\n\n

كتابة أول محلل بلغة Swift: خطوة بخطوة

\n\n

لنكتب محللًا يستخرج عناوين المقالات من الصفحة الرئيسية لـ Hacker News (news.ycombinator.com). هذه مهمة كلاسيكية لتعلم التحليل.

\n\n

الخطوة 1: تحميل صفحة HTML

\n\n

نستخدم URLSession لتحميل البيانات بشكل غير متزامن. Swift هي لغة تدعم بقوة async/await، لذا سنستخدم النهج الحديث.

\n\n
func fetchHTML(from urlString: String) async throws -> String {\n    guard let url = URL(string: urlString) else {\n        throw URLError(.badURL)\n    }\n    \n    let (data, _) = try await URLSession.shared.data(from: url)\n    guard let html = String(data: data, encoding: .utf8) else {\n        throw URLError(.cannotDecodeContentData)\n    }\n    \n    return html\n}
\n\n

لاحظ: نعيد سلسلة HTML. هذه هي البيانات الخام التي سنقوم بتحليلها.

\n\n

الخطوة 2: تحليل HTML باستخدام SwiftSoup

\n\n

الآن الجزء الممتع - استخراج البيانات. يعمل SwiftSoup مثل محددات CSS: تحدد العناصر التي تريد الحصول عليها.

\n\n
func parseTitles(from html: String) throws -> [String] {\n    let doc = try SwiftSoup.parse(html)\n    let titles = try doc.select(".titleline a").array()\n    \n    var result: [String] = []\n    for title in titles {\n        let text = try title.text()\n                

المدونات

توصيات الكتب