Contents

วิธีขูดข้อมูลจากเว็บไซต์ด้วย Google ชีต

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

แท้จริงแล้ว Google ชีตมีความสามารถในการทำหน้าที่เป็นโซลูชันแบบรวมทุกอย่างสำหรับการขูดเว็บ โดยได้รับความอนุเคราะห์จากฟังก์ชัน IMPORTXML ในตัว ฟังก์ชันนี้ช่วยให้ผู้ใช้สามารถดึงข้อมูลจากเว็บไซต์ต่างๆ ได้อย่างง่ายดาย ซึ่งสามารถนำไปใช้กับแอปพลิเคชันต่างๆ เช่น การวิเคราะห์ข้อมูล การรายงาน และงานใดๆ ที่ต้องใช้ข้อมูลเชิงลึกที่ขับเคลื่อนด้วยข้อมูล

ฟังก์ชัน IMPORTXML ใน Google ชีต

ด้วยการใช้ฟังก์ชันการทำงานในตัวของ Google ชีตที่เรียกว่า “IMPORTXML” ทำให้สามารถดึงข้อมูลจากแหล่งเว็บต่างๆ รวมถึงรูปแบบ XML, HTML, RSS และ CSV การใช้คุณลักษณะนี้มีศักยภาพในการปรับปรุงกระบวนการรวบรวมข้อมูลจากเว็บไซต์โดยไม่ต้องอาศัยความเชี่ยวชาญด้านการเขียนโปรแกรมที่กว้างขวาง

ต่อไปนี้เป็นไวยากรณ์พื้นฐานของ IMPORTXML:

 =IMPORTXML(url, xpath_query) 

Uniform Resource Locator (URL) ระบุที่อยู่ของหน้าเว็บเฉพาะที่ต้องการดึงข้อมูลจากเทคนิคการขูดเว็บ

การสืบค้น XPath แสดงถึงภาษาที่แม่นยำซึ่งใช้ในการเลือกข้อมูลเฉพาะจากเอกสาร XML ซึ่งสรุปข้อมูลที่ต้องการซึ่งมีจุดมุ่งหมายเพื่อแยกออกมาในนั้น

XPath หรือภาษาเส้นทาง XML ทำหน้าที่เป็นเครื่องมือนำทางสำหรับการสำรวจและดึงข้อมูลจากเอกสาร XML รวมถึง HTML การใช้ภาษานี้ทำให้ผู้ใช้สามารถระบุตำแหน่งเฉพาะขององค์ประกอบข้อมูลที่ต้องการภายในโครงสร้าง HTML การเข้าใจพื้นฐานของการสืบค้น XPath ถือเป็นสิ่งสำคัญในการใช้ฟังก์ชัน IMPORTXML อย่างมีประสิทธิภาพ

ทำความเข้าใจ XPath

XPath มีฟังก์ชันและตัวดำเนินการมากมายที่ช่วยให้สามารถจัดการและกรองข้อมูลภายในเอกสาร HTML ได้ แม้ว่าจะอยู่นอกเหนือขอบเขตของบทความนี้ในการให้ภาพรวมที่ละเอียดถี่ถ้วนของทั้ง XML และ XPath ผมจะนำเสนอหลักการพื้นฐานหลายประการของ XPath ในที่นี้:

การเลือกองค์ประกอบผ่านการใช้ตัวคั่น เช่น เครื่องหมายทับ ("/") และเครื่องหมายทับคู่ (//) ช่วยให้สามารถระบุเส้นทางเฉพาะภายในเอกสาร HTML ได้ ตัวอย่างเช่น “/html/body/div” จะระบุอินสแตนซ์ทั้งหมดขององค์ประกอบ “div” ที่อยู่ภายในส่วน “body” ของเอกสาร HTML ที่อยู่ในไดเร็กทอรี “html”

เพื่อระบุและแยกคุณลักษณะเฉพาะจากหน้าเว็บที่กำหนด ผู้ใช้อาจใช้เกณฑ์การคัดเลือกต่างๆ ตามแบบแผนการตั้งชื่อคุณลักษณะหรือรูปแบบอื่นๆ ที่สามารถระบุตัวได้ ด้วยการใช้ตัวเลือกที่เหมาะสม เช่น “@href” ในกรณีนี้ คุณสามารถกำหนดเป้าหมายและดึงข้อมูลอินสแตนซ์ทั้งหมดของแอตทริบิวต์ “href” ที่มีอยู่ในเอกสารได้ วิธีการนี้ช่วยให้ดึงข้อมูลที่เกี่ยวข้องได้อย่างมีประสิทธิภาพในขณะที่กรองข้อมูลที่ไม่เกี่ยวข้องออกไป

การกรององค์ประกอบโดยใช้ภาคแสดงที่อยู่ในวงเล็บเหลี่ยมเป็นกลไกที่ช่วยให้สามารถเลือกองค์ประกอบเฉพาะตามเกณฑ์ที่ระบุภายในวงเล็บเหลี่ยม ซึ่งสามารถทำได้โดยใช้แอตทริบิวต์หรือคลาสของแท็ก HTML ตัวอย่างคือการเลือกองค์ประกอบ ทั้งหมดที่มีแอตทริบิวต์ class เท่ากับ"container"โดยใช้ไวยากรณ์ /div[@class="container"]

XPath มีฟังก์ชันต่างๆ มากมาย รวมถึงความสามารถในการตรวจสอบว่าองค์ประกอบที่กำหนดนั้นอยู่ภายในองค์ประกอบอื่นโดยใช้ฟังก์ชัน"contains()“หรือไม่ ตรวจสอบว่าชื่อแท็กขององค์ประกอบเริ่มต้นด้วยสตริงที่ระบุโดยใช้"starts-with()“หรือไม่ และแยกค่าข้อความขององค์ประกอบโดยใช้ฟังก์ชัน"text()“ฟังก์ชันเหล่านี้ทำให้ผู้ใช้สามารถดำเนินการตามเป้าหมายบนเอกสาร XML ตามเกณฑ์เฉพาะได้

วิธีแยก XPath จากเว็บไซต์

การแยก XPath ขององค์ประกอบโดยใช้ IMPORTXML อาจเป็นงานที่ท้าทายสำหรับผู้ที่คุ้นเคยกับไวยากรณ์ของฟังก์ชัน มีความรู้เกี่ยวกับ URL ของเว็บไซต์เป้าหมาย และได้ระบุองค์ประกอบเฉพาะที่ต้องการดึงข้อมูลแล้ว กระบวนการนี้เกี่ยวข้องกับการระบุตัวระบุเฉพาะหรือคุณลักษณะที่เกี่ยวข้องกับองค์ประกอบที่ต้องการ จากนั้นใช้ข้อมูลนี้ร่วมกับสูตร XPath เพื่อสร้างเส้นทางที่เหมาะสมไปยังองค์ประกอบภายในโครงสร้าง XML ของหน้าเว็บ

เราไม่จำเป็นต้องจดจำสถาปัตยกรรมของเว็บไซต์ทั้งหมดเพื่อรับข้อมูลจากเว็บไซต์โดยใช้ IMPORTXML ในความเป็นจริง แต่ละแพลตฟอร์มการท่องเว็บมีเครื่องมือที่มีประสิทธิภาพซึ่งช่วยให้สามารถสร้าง XPath ขององค์ประกอบที่กำหนดได้อย่างง่ายดาย

/th/images/using-inspect-element-to-copy-xpath.jpg

เครื่องมือ “ตรวจสอบองค์ประกอบ” ช่วยให้สามารถแยกภาษาเส้นทาง XML (XPath) จากส่วนประกอบต่างๆ ของหน้าเว็บโดยใช้กระบวนการที่เรียบง่าย ดังรายละเอียดด้านล่าง:

เข้าถึงหน้าเว็บที่ต้องการโดยใช้แอปพลิเคชันท่องอินเทอร์เน็ตที่ต้องการ เช่น Google Chrome หรือ Mozilla Firefox

ดึงองค์ประกอบข้อมูลที่ต้องการโดยการระบุตำแหน่งขององค์ประกอบในซอร์สโค้ดของหน้าเว็บโดยใช้เครื่องมือขูดเว็บ เช่น Beautiful Soup หรือ Scrapy

⭐คลิกขวาที่องค์ประกอบ

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

ขั้นแรก คลิกองค์ประกอบที่คุณต้องการแก้ไขในหน้าเว็บของคุณ จากนั้นค้นหาตัวเลือก"ตรวจสอบ"ภายในเมนูบริบทที่ปรากฏขึ้นเมื่อคลิกขวา เมื่อเสร็จแล้ว ให้เลือกองค์ประกอบที่ต้องการจากรายการองค์ประกอบที่ปรากฏในโค้ด HTML เพื่อแก้ไขหรือจัดการเพิ่มเติม

คลิกที่ปุ่มด้านล่างเพื่อสร้างนิพจน์ XPath สำหรับองค์ประกอบที่เลือก ซึ่งสามารถคัดลอกไปยังคลิปบอร์ดของคุณได้อย่างง่ายดาย

ตอนนี้เราได้รับข้อมูลที่จำเป็นแล้ว ให้เราสาธิตการใช้งานจริงของ IMPORTXML โดยการดึง URL จากเว็บเพจที่กำหนด

วิธีขูดลิงค์จากเว็บไซต์ด้วย IMPORTXML

ด้วยการใช้ความสามารถอันทรงพลังของ IMPORTXML เราสามารถดึงข้อมูลมากมายจากเว็บไซต์ต่างๆ สิ่งนี้ไม่เพียงแต่ครอบคลุมเนื้อหาที่เป็นข้อความเท่านั้น แต่ยังรวมไปถึงเนื้อหามัลติมีเดีย เช่น รูปภาพและวิดีโอ ตลอดจนองค์ประกอบแทบทุกอย่างที่เป็นไปได้ที่ปรากฏบนเว็บไซต์ ในบรรดาองค์ประกอบเหล่านี้ ไฮเปอร์ลิงก์มีความโดดเด่นเป็นพิเศษเนื่องจากมีความสำคัญในการทำความเข้าใจโครงสร้างและลำดับชั้นของหน้าเว็บ การตรวจสอบปลายทางที่เชื่อมโยงหน้าเว็บหนึ่งๆ อาจทำให้สามารถรวบรวมข้อมูลเชิงลึกอันมีค่าเกี่ยวกับลักษณะและจุดสนใจของเว็บไซต์นั้นได้

การใช้ IMPORTXML ภายใน Google ชีตทำให้สามารถแยก URL ออกจากหน้าเว็บได้อย่างรวดเร็ว อำนวยความสะดวกในการวิเคราะห์ในภายหลังผ่านอาร์เรย์ของฟังก์ชันที่มีอยู่ในแพลตฟอร์ม

ขูดลิงก์ทั้งหมด

หากต้องการแยก URL ทั้งหมดที่ปรากฏบนหน้าเว็บใดหน้าหนึ่ง อาจใช้วิธีการดังต่อไปนี้:

 =IMPORTXML(url, "//a/@href")

นิพจน์ XPath ที่กำหนดจะดึงข้อมูลแอตทริบิวต์"href"ทุกรายการที่เกี่ยวข้องกับแต่ละอินสแตนซ์ขององค์ประกอบ"a"จึงสามารถแยกและรวบรวมไฮเปอร์ลิงก์ทั้งหมดที่มีอยู่ในหน้าเว็บได้สำเร็จ

/th/images/scraping-all-links-in-a-webpage-with-importxml.jpg

 =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a/@href") 

อัลกอริธึมที่กล่าวมาข้างต้นจะแยกทุกไฮเปอร์ลิงก์ที่อยู่ในรายการ Wikipedia

การผสมผสานแนวทางปฏิบัติในการป้อน URL ของหน้าเว็บในเซลล์ที่แตกต่างกันและการอ้างอิงเซลล์นั้นเป็นวิธีที่ชาญฉลาด เนื่องจากมาตรการนี้ช่วยรักษาสูตรที่กระชับ ในขณะเดียวกันก็หลีกเลี่ยงความยุ่งเหยิงหรือความซับซ้อน กลยุทธ์ที่คล้ายกันอาจนำไปใช้เมื่อกำหนดคำสั่ง XPath เพื่อการนำทางที่ราบรื่นภายในบริบทของการวิเคราะห์ข้อมูล

ขูดข้อความลิงก์ทั้งหมด

หากต้องการดึงเนื้อหาของไฮเปอร์ลิงก์นอกเหนือจากตัวระบุตำแหน่งทรัพยากรที่เหมือนกัน เราอาจใช้วิธีการต่อไปนี้:

 =IMPORTXML(url, "//a")

การสอบถามในปัจจุบันครอบคลุมการเรียกค้นองค์ประกอบทั้งหมด โดยที่ข้อความลิงก์ที่แยกออกมาและ URL ที่เกี่ยวข้องอาจได้รับจากผลลัพธ์

/th/images/scraping-all-link-texts-in-a-webpage-with-importxml.jpg

 =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a") 

สูตรที่กล่าวมาข้างต้นจะดึงข้อมูลจุดยึดภายในรายการ Wikipedia ที่เหมือนกัน

วิธีขูดลิงก์เฉพาะจากเว็บไซต์ด้วย IMPORTXML

ในบางครั้ง มีความจำเป็นต้องดึงหน้าเว็บจากบางเว็บไซต์ที่มีคำหลักบางคำหรืออยู่ภายในพื้นที่ที่กำหนดของหน้าเว็บ

การใช้ความเข้าใจอย่างเชี่ยวชาญเกี่ยวกับ XPath ช่วยให้สามารถระบุและค้นหาองค์ประกอบที่ต้องการได้อย่างแม่นยำ

การคัดลอกลิงก์ที่มีคำหลัก

เพื่อแยก URL ที่มีคำหลักเฉพาะโดยใช้ XPath เราอาจใช้ฟังก์ชัน"contains()”:

 =IMPORTXML(url, "//a[contains(@href, 'keyword')]/@href")

แบบสอบถามที่กำหนดดึงค่า href ขององค์ประกอบ HTML ที่มีแอตทริบิวต์ href รวมคำค้นหาเฉพาะตามเกณฑ์ที่ให้ไว้

/th/images/scrapping-specific-links-with-a-keyword-with-importxml.jpg

 =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a[contains(@href, 'record')]/@href")

อัลกอริธึมที่กล่าวมาข้างต้นจะแยกทุกไฮเปอร์ลิงก์ที่ฝังอยู่ภายในอินสแตนซ์ที่ระบุของเนื้อหาที่เป็นลายลักษณ์อักษรที่พบในสารานุกรมออนไลน์ โดยมีคำว่า “บันทึก” ปรากฏอยู่ภายในเนื้อหาของลิงก์ดังกล่าว

การคัดลอกลิงก์ภายในส่วน

หากต้องการแยกลิงก์จากส่วนใดส่วนหนึ่งของหน้าเว็บ อาจใช้นิพจน์ XPath เพื่อระบุส่วนที่ต้องการ เพื่อเป็นตัวอย่าง ให้พิจารณาข้อมูลโค้ดต่อไปนี้:

 =IMPORTXML(url, "//div[@class='section']//a/@href")

การสอบถามข้างต้นเกี่ยวข้องกับการเลือกแอตทริบิวต์ไฮเปอร์ลิงก์ที่เกี่ยวข้องกับองค์ประกอบ HTML ซึ่งจัดประเภทเป็น"div"และมีส่วนการกำหนด"ส่วน"ซึ่งแอตทริบิวต์ดังกล่าวมักใช้เพื่อระบุลิงก์หรือการนำทางระหว่างหน้าเว็บ จึงอำนวยความสะดวกในการโต้ตอบของผู้ใช้บนแพลตฟอร์มดิจิทัล.

/th/images/scraping-links-within-sections-with-importxml.jpg

สูตรดังกล่าวกำหนดเป้าหมายไฮเปอร์ลิงก์ทั้งหมดที่ฝังอยู่ภายในองค์ประกอบ HTML ด้วยแอตทริบิวต์คลาส"mw-content-container"และซ้อนอยู่ภายในองค์ประกอบคอนเทนเนอร์โดยมีแอตทริบิวต์ id ตั้งค่าเป็น"หน้าหลัก”

 =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//div[@class='mw-content-container']//a/@href") 

แท้จริงแล้ว สิ่งสำคัญคือต้องรับรู้ว่าฟังก์ชันการทำงานของ IMPORTXML ขยายไปมากกว่าการดำเนินการขูดเว็บแบบธรรมดา ฟังก์ชันกลุ่ม IMPORT ช่วยให้ผู้ใช้สามารถนำเข้าตารางข้อมูลที่มีโครงสร้างไปยัง Google ชีตจากแหล่งต่างๆ บนอินเทอร์เน็ตได้โดยตรงอย่างราบรื่น คุณลักษณะนี้ช่วยให้ผู้ใช้สามารถรวบรวมและจัดระเบียบข้อมูลได้อย่างมีประสิทธิภาพโดยไม่ต้องป้อนข้อมูลแต่ละชิ้นด้วยตนเอง

แม้ว่าทั้ง Google ชีตและ Microsoft Excel จะมีฟังก์ชันการทำงานที่คล้ายคลึงกันมากมาย แต่สิ่งสำคัญที่ควรทราบก็คือฟังก์ชันกลุ่ม IMPORT นั้นมีเฉพาะใน Google ชีตเท่านั้น ด้วยเหตุนี้ จึงต้องสำรวจกลยุทธ์ทางเลือกเมื่อพยายามดึงข้อมูลจากแหล่งที่มาของเว็บลงใน Microsoft Excel

ลดความซับซ้อนของการขูดเว็บด้วย Google ชีต

การใช้ Google ชีตร่วมกับฟังก์ชัน IMPORTXML ช่วยให้มีวิธีดึงข้อมูลจากหน้าเว็บที่ปรับเปลี่ยนและเข้าถึงได้ ทำให้เป็นตัวเลือกยอดนิยมในหมู่ผู้ที่ต้องการรวบรวมข้อมูลออนไลน์

ด้วยการใช้ XPath อย่างเชี่ยวชาญและกำหนดคำสั่งสืบค้นที่มีประสิทธิภาพด้วย IMPORTXML เราจึงสามารถควบคุมความสามารถทั้งหมดและดึงข้อมูลอันล้ำค่าจากแหล่งอินเทอร์เน็ตได้ ดังนั้นการเริ่มต้นการแยกข้อมูลผ่านการขูดเว็บจะช่วยยกระดับความสามารถในการวิเคราะห์เว็บของคุณไปสู่ขั้นสูง