الصفحة الرئيسية » howto » كيفية استخراج الروابط من أي صفحة ويب باستخدام بوويرشيل

    كيفية استخراج الروابط من أي صفحة ويب باستخدام بوويرشيل

    يحتوي PowerShell 3 على الكثير من الميزات الجديدة ، بما في ذلك بعض الميزات الجديدة الفعالة المرتبطة بالويب. إنها تبسط بشكل كبير أتمتة الويب ، واليوم سنوضح لك كيف يمكنك استخلاص كل رابط من صفحة الويب ، واختياريا تنزيل المصدر إذا كنت ترغب في ذلك.

    القشط الويب مع PowerShell

    هناك نوعان من أوامر cmdlets الجديدة التي تجعل أتمتة الويب أسهل ، Invoke-WebRequest مما يجعل تحليل المحتوى البشري المقروء أسهل ، و Invoke-RestMethod مما يجعل قراءة المحتوى المقروء آليا أسهل. بما أن الارتباطات جزء من HTML لصفحة ما ، فهي جزء من الأشياء القابلة للقراءة من قبل الإنسان. كل ما عليك القيام به للحصول على صفحة ويب هو استخدام Invoke-WebRequest وإعطائه عنوان URL.

    Invoke-WebRequest -Uri "http://howtogeek.com"

    إذا قمت بالتمرير لأسفل سترى الاستجابة تحتوي على خاصية روابط ، يمكننا استخدام ميزة تعداد عضو جديد في PowerShell 3 لتصفية هذه الميزة.

    (Invoke-WebRequest -Uri "http://howtogeek.com") .Links

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

    ((Invoke-WebRequest -Uri "http://howtogeek.com") .Links | Where-Object $ _. href -like "http *" | Where class -eq "title").

    شيء آخر رائع يمكنك القيام به مع أوامر cmdlets الجديدة هو أتمتة التنزيلات اليومية. دعونا ننظر تلقائيا في إلغاء صورة اليوم قبالة موقع Nat Geo ، للقيام بذلك سنقوم بدمج أوامر cmdlets الجديدة على الويب مع Start-BitsTransfer.

    $ IOTD = ((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/').Links | where innerHTML -like "* Download Wallpaper *") .href
    Start-BitsTransfer -Source $ IOTD -Destination C: \ IOTD \

    هذا كل ما في الامر. لديك أي حيل أنيقة خاصة بك؟ اسمحوا لنا أن نعرف في التعليقات.