تحليل واستخراج البيانات بلغة جافا: من المبتدئ إلى أول محلل

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

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

ابدأ الدورة

لماذا جافا وليس بايثون؟ (إفساد: الاختيار ليس واضحًا)

\n

عندما يتعلق الأمر بتحليل واستخراج البيانات، غالبًا ما يتبادر إلى الذهن بايثون مع مكتبات BeautifulSoup و Scrapy. لكن لنكن صادقين: في عالم تطوير المؤسسات والأنظمة عالية التحميل والخدمات المصغرة، تظل جافا هي الملك. إذا كنت تكتب بالفعل بلغة جافا أو تتطلع فقط إلى هذه اللغة، فإن التحليل بها ليس مجرد "ممكن"، بل غالبًا ما يكون ضروريًا: سرعة عالية، تعدد خيوط مدمج، أدوات قوية للعمل مع HTTP و HTML.

\n

في هذه المقالة، سنشرح كيفية تحليل المواقع بلغة جافا من الصفر. ستتعرف على المكتبات التي يجب استخدامها، وكيفية تجنب الحظر، وكيفية بناء أول محلل عملي لك. ستكون أمثلة الكود حية قدر الإمكان - خذها وشغّلها.

\n\n

ما هو تحليل واستخراج البيانات (ولماذا تحتاجه)

\n

قبل الغوص في الكود، دعنا نوضح المصطلحات. التحليل هو تفكيك البنية (HTML، JSON، XML) واستخراج المعلومات المطلوبة. الاستخراج هو عملية جمع البيانات من صفحات الويب، والتي تشمل التحليل وتحميل الصفحات وتصفح الروابط.

\n

لماذا تحتاج هذا؟ أمثلة من الحياة الواقعية:

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

بلغة جافا، يتم كل هذا بسرعة وثبات وبأقل استهلاك للذاكرة.

\n\n

أدوات جافا للتحليل: اختيار المكتبات

\n

لتحليل واستخراج البيانات بلغة جافا، هناك عدة مكتبات قوية. إليك المجموعة الأساسية التي ستغطي 95% من المهام:

\n
    \n
  • Jsoup - المكتبة الرئيسية لتحليل HTML. يمكنها زيارة المواقع، واستخراج العناصر باستخدام محددات CSS، والعمل مع السمات والنص.
  • \n
  • Apache HttpClient أو Java 11+ HttpClient - لضبط الطلبات بدقة، والعمل مع الكوكيز والجلسات والرؤوس.
  • \n
  • Selenium WebDriver - إذا كان الموقع يستخدم JavaScript لتحميل البيانات. يعرض الصفحة كمتصفح حقيقي (Chrome، Firefox).
  • \n
  • OkHttp - بديل خفيف وسريع لـ HttpClient.
  • \n
\n

معظم المواقع الثابتة، يكفي Jsoup + HttpClient المدمج. للمواقع الديناميكية، نضيف Selenium.

\n\n

كتابة أول محلل بلغة جافا باستخدام Jsoup

\n

لنبدأ بشيء بسيط: تحليل عناوين المقالات من مدونة. لنفترض أننا بحاجة لجمع كل العناوين من الصفحة الرئيسية لـ pythonlib.ru (افتراضيًا).

\n

سنضيف التبعية في Maven (pom.xml):

\n
<dependency>\n    <groupId>org.jsoup</groupId>\n    <artifactId>jsoup</artifactId>\n    <version>1.17.2</version>\n</dependency>
\n\n

الآن الكود نفسه:

\n
import org.jsoup.Jsoup;\nimport org.jsoup.nodes.Document;\nimport org.jsoup.nodes.Element;\nimport org.jsoup.select.Elements;\n\npublic class SimpleParser {\n    public static void main(String[] args) {\n        try {\n            // 1. تحميل الصفحة\n            Document doc = Jsoup.connect("https://pythonlib.ru")\n                    .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36")\n                    .timeout(10000)\n                    .get();\n\n            // 2. اختيار جميع العناوين h2 (أو أي محدد آخر)\n            Elements headlines = doc.select("h2.entry-title a");\n\n            // 3. عرض النص والروابط\n            for (Element headline : headlines) {\n                String title = headline.text();\n                String link = headline.attr("href");\n                System.out.println("العنوان: " + title);\n                System.out.println("الرابط: " + link);\n                System.out.println("---");\n            }\n\n        } catch (Exception e) {\n            e.printStac                

المدونات

توصيات الكتب