كيفية استخراج الروابط من أي صفحة ويب باستخدام بوويرشيل
يحتوي 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 \
هذا كل ما في الامر. لديك أي حيل أنيقة خاصة بك؟ اسمحوا لنا أن نعرف في التعليقات.