ستأخذك هذه المقالة في رحلة تشرح كيفية القيام بتجريف الويب لإعلانات الوظائف. لذلك ، أنت في سوق العمل وتحاول معرفة أفضل وظيفة. لكنك تريد أن تلعب بشكل أكثر ذكاء وليس أصعب. لماذا لا تنشئ مكشطة ويب لجمع وتحليل إعلانات الوظائف نيابة عنك. بمجرد تعيينه ، سيوفر لك ثروات البيانات بتنسيق مرتب لطيف ، لذلك لن تضطر إلى التحقق منه يدويا مرارا وتكرارا. هيا بنا نبدأ.
يعد تجريف الويب لإعلانات الوظائف هو الحل الذي يجمع البيانات تلقائيا من بوابات وظائف متعددة ويقلل وقتك في جلب البيانات من كل موقع ويب. إن امتلاك مثل هذه الأداة التي يمكن أن توفر لك قاعدة بيانات كاملة لفرص العمل سيؤدي إلى تبسيط مهمتك من خلال طيات متعددة. كل ما عليك فعله هو التصفية التي تناسبك ومتابعة عملية التقديم.
لذلك ، أنت في سوق العمل وتحاول معرفة أفضل وظيفة. لكنك تريد أن تلعب بشكل أكثر ذكاء وليس أصعب. لماذا لا تنشئ مكشطة ويب لجمع وتحليل إعلانات الوظائف نيابة عنك؟ بمجرد تعيينه ، سيوفر لك ثروات البيانات بتنسيق مرتب لطيف ، لذلك لن تضطر إلى التحقق منه يدويا مرارا وتكرارا. هيا بنا نبدأ.
[تنويه! يمكن للعديد من مواقع الويب تقييد إلغاء البيانات من صفحاتها. قد يخضع المستخدمون لمشكلات قانونية اعتمادا على مكان وكيفية محاولتهم استخراج المعلومات. لذلك يحتاج المرء إلى توخي الحذر الشديد عند النظر إلى المواقع التي تضم بياناته. على سبيل المثال ، يمانع Facebook و Linked In و Craiglist أحيانا إذا تم إلغاء البيانات من صفحاتهم. لذلك إذا كنت تريد الكشط ، فقم بكشط على مسؤوليتك الخاصة].
ستكون هذه مقالة أساسية للغاية سنرى فيها أساسيات تجريف الويب عن طريق استخراج بعض المعلومات المفيدة المتعلقة بالوظائف المتعلقة ب "علوم البيانات" من indeed.com. سنكتب برنامجا رائعا يقوم بتحديث الوظائف عدة مرات يدويا. بعض المكتبات المفيدة التي ستكون مفيدة للغاية أثناء بناء هذه الكاشطة هي "الطلبات" و "BeautifulSoup".
الطريقة التي يتم بها تنظيم عنوان URL مهمة:
ستكون بنية عنوان URL هذه ذات فائدة كبيرة بينما نواصل بناء الكاشطة وجمع البيانات من صفحات متعددة.
يمكن لمتصفح Chrome فحص بنية HTML للصفحة بالنقر بزر الماوس الأيمن عليها واستخدام خيار فحص العنصر. ستظهر قائمة على اليمين ، وستعرض أيضا علامات العناصر المتداخلة ، وعندما تضع المؤشر على هذه العناصر ، ستبرز هذا الجزء من الشاشة.
بالنسبة لهذه المقالة ، أفترض أنك تعرف أساسيات HTML مثل العلامات و div وما إلى ذلك ، ولكن لحسن الحظ لا تحتاج إلى معرفة كل شيء. تحتاج فقط إلى فهم بنية الصفحة والتسلسل الهرمي للمكونات المختلفة.
الآن قمنا بتحليل بنية الصفحة. سيساعدنا هذا في إنشاء كود وفقا لتلك المعلومات لسحب البيانات التي نختارها. لنبدأ أولا باستيراد مكتباتنا. لاحظ أننا هنا نقوم أيضا باستيراد "الوقت" ، والذي سيكون مفيدا في عدم إرباك خادم الموقع عند كشط المعلومات.
سنستهدف أولا الصفحة الواحدة لسحب كل جزء من المعلومات التي نريدها ،
يؤدي استخدام prettify إلى تسهيل الحصول على نظرة عامة على ترميز HTML للصفحة ويوفر مخرجات مثل هذه ،
الآن جميع المعلومات الموجودة على صفحة اهتمامنا موجودة في "حساء" متغير. يتعين علينا البحث أكثر في الكود للتكرار من خلال العديد من العلامات والعلامات الفرعية لالتقاط المعلومات المطلوبة.
خمس نقاط رئيسية لكل إعلان وظيفة هي ،
إذا ألقينا نظرة على الصفحة ، فهناك 15 وظيفة شاغرة. لذلك يجب أن ينشئ الكود الخاص بنا أيضا 15 عنصرا مختلفا. ومع ذلك ، إذا كان الرمز يوفر أقل من ذلك ، فيمكننا الرجوع إلى الصفحة ومعرفة ما لم يتم التقاطه.
As can be seen, the entirety of each job posting is under <div> tags, with an attribute “class” = “row result.”
Further, we could also see that job titles are under <a> tags, with the attribute “title = (title)”. One can see the value of the tag’s attribute with tag[“attribute”], so I can use it to find each posting’s job title.
إذا لخصنا ، فإن الوظيفة التي سنراها تتضمن الخطوات الثلاث التالية ،
سينتج عن هذا الرمز ناتج مثل هذا ،
Getting company names can be a bit tricky because most of them are appearing in <span> tags, with “class”:” company”. They are also housed in <span> tags with “class”:” result-link-source”.
سنستخدم بيانات if / else لاستخراج معلومات الشركة من كل من هذه الأماكن. لإزالة المسافات البيضاء حول أسماء الشركات عند إخراجها ، سنستخدم inputting.strip() في النهاية.
Locations are located under the <span> tags. Span tags are sometimes nested within each other, such that the location text may sometimes be within “class”:”location” attributes, or nested in “itemprop”:”addressLocality”. However a simple for loop can examine all span tags for text and retrieve the necessary information.
الراتب هو الجزء الأكثر تحديا لاستخراجه من إعلانات الوظائف. لا تنشر معظم المنشورات معلومات الراتب على الإطلاق ، في حين أن البعض الآخر يفعل ذلك ، يمكن أن يكون هناك أماكن متعددة لاختيار ذلك. لذلك يتعين علينا كتابة رمز يمكنه الحصول على رواتب متعددة من أماكن متعددة ، وإذا لم يتم العثور على راتب ، فنحن بحاجة إلى إنشاء قيمة "لم يتم العثور على شيء" لأي وظائف لا تحتوي على راتب.
Some salaries are under <nobr> tags, while others are under <div> tags, “class”:”sjcl” and are under separate div tags with no attributes. Try/except statement can be helpful while extracting this information.
المهمة النهائية هي الحصول على ملخص الوظيفة. ومع ذلك ، لا يمكن الحصول على ملخصات الوظائف لكل منصب معين لأنها غير مضمنة في HTML من صفحة إنديد معينة. يمكننا الحصول على بعض المعلومات حول كل وظيفة مما يتم توفيره. يمكننا استخدام السيلينيوم لهذا الغرض.
But let’s first try this using python. Summaries are located under <span> tags. Span tags are nested within each other such that the location text is within “class”:” location” tags or nested in “itemprop”:” adressLocality”. However, using a simple for loop can examine all span tags for text to retrieve the necessary information.
في هذه المقالة ، رأينا ما هو تجريف الويب وكيف يمكن أن يكون مفيدا في حياتنا اليومية من خلال أخذ مثال عملي لكشط بيانات الوظيفة من صفحات الويب الخاصة ب Indeed. يرجى ملاحظة أن النتائج التي تحصل عليها قد تكون مختلفة عن هذه النتائج لأن الصفحات ديناميكية ، لذلك تستمر المعلومات في التغير بمرور الوقت.
تجريف الويب هو تقنية لا تصدق إذا تم القيام به بشكل صحيح ووفقا لمتطلباتك. لقد رأينا كذلك الجوانب الخمسة المهمة لكل إعلان وظيفة وكيفية استخراجها. عندما تجرب هذا الرمز بنفسك ، ستكون قد كشطت بيانات إعلانات الوظائف ، ولن تحتاج إلى البحث عن الوظائف يدويا ، وهو أمر مذهل. يمكن أيضا تطبيق نفس التقنية على صفحات الويب الأخرى ، ولكن قد يختلف هيكلها. لذلك يحتاج المرء إلى تحسين التعليمات البرمجية الخاصة به وفقا لذلك. ولكن يتم تغطية جميع الأساسيات في هذه المقالة ، لذلك لن تكون هناك أي صعوبة في كشط الصفحات الأخرى أيضا.