โฮมเพจ » ทำอย่างไร » วิธีแยกลิงก์ออกจากหน้าเว็บใด ๆ ที่ใช้ PowerShell

    วิธีแยกลิงก์ออกจากหน้าเว็บใด ๆ ที่ใช้ PowerShell

    PowerShell 3 มีคุณสมบัติใหม่มากมายรวมถึงคุณสมบัติที่เกี่ยวข้องกับเว็บใหม่ที่ทรงพลัง พวกมันลดความซับซ้อนของการทำให้เว็บเป็นอัตโนมัติโดยอัตโนมัติและในวันนี้เราจะแสดงให้คุณเห็นว่าคุณสามารถดึงทุกลิงก์ออกจากหน้าเว็บได้อย่างไรและเลือกดาวน์โหลดทรัพยากรหากคุณต้องการ.

    การขูดเว็บด้วย PowerShell

    มี cmdlet ใหม่สองรายการที่ทำให้การทำให้เว็บง่ายขึ้นอัตโนมัติ Invoke-WebRequest ซึ่งทำให้การแยกเนื้อหามนุษย์อ่านง่ายขึ้นและ Invoke-RestMethod ซึ่งทำให้เนื้อหาที่อ่านได้ง่ายขึ้น เนื่องจากลิงก์เป็นส่วนหนึ่งของ HTML ของหน้าเว็บจึงเป็นส่วนหนึ่งของสิ่งที่มนุษย์อ่านได้ สิ่งที่คุณต้องทำเพื่อให้ได้เว็บเพจคือใช้ Invoke-WebRequest และให้ URL.

    เรียกใช้ WebRequest -Uri 'http://howtogeek.com'

    หากคุณเลื่อนลงคุณจะเห็นการตอบสนองมีคุณสมบัติการเชื่อมโยงเราสามารถใช้คุณสมบัติการแจงนับสมาชิกใหม่ของ PowerShell 3 เพื่อกรองสิ่งเหล่านี้.

    (เรียกใช้ -Request -Uri 'http://howtogeek.com') .Links

    อย่างที่คุณเห็นคุณได้รับลิงค์กลับมามากมายนี่คือที่ที่คุณต้องใช้จินตนาการของคุณเพื่อค้นหาสิ่งที่ไม่เหมือนใครเพื่อกรองลิงก์ที่คุณกำลังมองหา สมมติว่าเราต้องการรายการบทความทั้งหมดในหน้าแรก.

    ((เรียกใช้ -Request -Uri 'http://howtogeek.com') .Links | Where-Object $ _. href-like“ http *” | ตำแหน่ง class -eq“ title”)

    อีกสิ่งที่ยอดเยี่ยมที่คุณสามารถทำได้กับ cmdlet ใหม่คือการดาวน์โหลดอัตโนมัติทุกวัน ให้ดูที่การคัดลอกรูปภาพในวันนั้นออกจากเว็บไซต์ Nat Geo โดยอัตโนมัติเพื่อทำสิ่งนี้เราจะรวมเว็บ cmdlets ใหม่เข้ากับ Start-BitsTransfer.

    $ IOTD = ((เรียกใช้ -Request -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/').Links | ที่ InnerHTML เหมือน "* ดาวน์โหลดวอลล์เปเปอร์ *") href
    เริ่มต้น BitsTransfer - จัดหาแหล่ง $ IOTD - ปลายทาง C: \ IOTD \

    นั่นคือทั้งหมดที่มีให้มัน คุณมีกลอุบายของคุณเองบ้างไหม? แจ้งให้เราทราบในความคิดเห็น.