Web Scraping คืออะไรและเหตุใดจึงต้องใช้ Web String
เผยแพร่แล้ว: 2021-08-01เว็บไซต์เต็มไปด้วยข้อมูลที่มีค่า และการจัดหาข้อมูลเกี่ยวข้องกับกระบวนการที่ซับซ้อนของการคัดลอกและวางข้อมูลด้วยตนเองหรือปฏิบัติตามรูปแบบที่บริษัทใช้ โดยไม่คำนึงถึงความเข้ากันได้กับระบบของผู้ใช้ นี่คือจุดเริ่มต้นของการขูดเว็บ
สารบัญ
Web Scraping - มันคืออะไร?
Web Scraping เป็นกระบวนการดึงและแยกข้อมูลจากเว็บไซต์ซึ่งจะถูกแปลงเป็นรูปแบบที่ทำให้ผู้ใช้มีไหวพริบ
แม้ว่าการขูดเว็บสามารถทำได้ด้วยตนเอง แต่กระบวนการจะซับซ้อนและน่าเบื่อเมื่อมีข้อมูลดิบจำนวนมากเข้ามาเกี่ยวข้อง นี่คือจุดที่เครื่องมือการขูดเว็บแบบอัตโนมัติจะมีผลบังคับใช้ เนื่องจากทำงานได้เร็วกว่า มีประสิทธิภาพ และราคาไม่แพงนัก
Web Scrapers เป็นไดนามิกในคุณลักษณะและฟังก์ชันต่างๆ เนื่องจากยูทิลิตี้จะแตกต่างกันไปตามการกำหนดค่าและรูปแบบของเว็บไซต์ เรียนรู้วิทยาศาสตร์ข้อมูลจากมหาวิทยาลัยชั้นนำจาก upGrad เพื่อทำความเข้าใจแนวคิดและวิธีการต่าง ๆ ของวิทยาศาสตร์ข้อมูล
วิธีการ Web Scrape ข้อมูลที่เป็นประโยชน์?
กระบวนการขูดเว็บเริ่มต้นด้วยการให้ URL หนึ่งรายการขึ้นไปแก่ผู้ใช้ เครื่องมือขูดจะสร้างโค้ด HTML สำหรับหน้าเว็บที่ต้องทิ้ง
จากนั้นมีดโกนจะดึงข้อมูลทั้งหมดที่มีอยู่บนหน้าเว็บหรือเฉพาะส่วนที่เลือกของหน้า ขึ้นอยู่กับความต้องการของผู้ใช้
ข้อมูลที่แยกออกมาจะถูกแปลงเป็นรูปแบบที่ใช้งานได้
เหตุใดบางเว็บไซต์จึงไม่อนุญาตการขูดเว็บ
บางเว็บไซต์บล็อกผู้ใช้อย่างโจ่งแจ้งจากการขูดข้อมูล แต่ทำไม? นี่คือเหตุผลว่าทำไม:
- เพื่อปกป้องข้อมูลที่ละเอียดอ่อนของตน ตัวอย่างเช่น Google Maps ไม่อนุญาตให้ผู้ใช้ได้รับผลลัพธ์ที่รวดเร็วขึ้นหากมีข้อความค้นหามากเกินไป
- เพื่อหลีกเลี่ยงข้อขัดข้องบ่อยครั้ง: เซิร์ฟเวอร์ของเว็บไซต์อาจขัดข้องหรือช้าลงหากมีคำขอที่คล้ายกันจำนวนมากเนื่องจากใช้แบนด์วิดท์จำนวนมาก
หมวดหมู่ต่าง ๆ ของ Web Scrapers
เว็บแครปเปอร์มีความแตกต่างกันในหลายๆ ด้าน มีการใช้งานเครื่องขูดเว็บสี่ประเภท
- สร้างไว้ล่วงหน้าหรือสร้างขึ้นเอง
- ส่วนขยายเบราว์เซอร์
- ส่วนต่อประสานผู้ใช้ (UI)
- คลาวด์และท้องถิ่น
1. เครื่องขูดเว็บที่สร้างขึ้นเอง
การสร้างเว็บสแครปเปอร์นั้นง่ายมากที่ทุกคนสามารถทำได้ อย่างไรก็ตาม ความรู้เกี่ยวกับการจัดการเครื่องมือขูดสามารถหาได้ก็ต่อเมื่อผู้ใช้มีความรอบรู้ในการเขียนโปรแกรมขั้นสูงเท่านั้น
มีเครื่องขูดเว็บที่สร้างขึ้นเองจำนวนมากสำหรับผู้ที่ไม่เชี่ยวชาญในการเขียนโปรแกรม เครื่องมือที่สร้างไว้ล่วงหน้าเหล่านี้สามารถดาวน์โหลดและใช้งานได้ทันที เครื่องมือเหล่านี้บางตัวมีคุณสมบัติขั้นสูง เช่น การตั้งเวลา Scrape, การส่งออก Google ชีต, JSON และอื่นๆ
2. ส่วนขยายเบราว์เซอร์
เว็บแครปเปอร์สองรูปแบบที่ใช้กันอย่างแพร่หลายคือส่วนขยายเบราว์เซอร์และซอฟต์แวร์คอมพิวเตอร์ ส่วนขยายของเบราว์เซอร์คือโปรแกรมที่สามารถเชื่อมต่อกับเบราว์เซอร์ เช่น Firefox หรือ Google Chrome ส่วนขยายนั้นใช้งานง่ายและสามารถรวมเข้ากับเบราว์เซอร์ได้อย่างง่ายดาย สามารถใช้สำหรับการแยกวิเคราะห์ข้อมูลได้เมื่อวางไว้ในเบราว์เซอร์เท่านั้น และคุณลักษณะขั้นสูงที่อยู่นอกเบราว์เซอร์จะไม่สามารถใช้งานได้โดยใช้ส่วนขยายของมีดโกน
เพื่อบรรเทาข้อจำกัดนั้น สามารถใช้ซอฟต์แวร์ขูดโดยการติดตั้งลงในคอมพิวเตอร์ แม้ว่าจะไม่ง่ายเหมือนส่วนขยาย แต่คุณลักษณะขั้นสูงสามารถนำไปใช้ได้โดยไม่มีข้อจำกัดของเบราว์เซอร์
3. ส่วนต่อประสานผู้ใช้ (UI)
เว็บแครปเปอร์แตกต่างกันไปตามข้อกำหนด UI ในขณะที่บางส่วนต้องการเพียง UI และบรรทัดคำสั่งเดียว บางส่วนอาจต้องการ UI ที่สมบูรณ์ซึ่งมีการจัดหาเว็บไซต์ทั้งหมดให้กับผู้ใช้เพื่อให้พวกเขาสามารถดึงข้อมูลที่ต้องการได้ในคลิกเดียว
เครื่องมือขูดเว็บบางตัวมีข้อกำหนดในการแสดงคำแนะนำและข้อความช่วยเหลือผ่านอินเทอร์เฟซผู้ใช้เพื่อช่วยให้ผู้ใช้เข้าใจคุณลักษณะทุกอย่างที่ซอฟต์แวร์มีให้
4. คลาวด์หรือท้องถิ่น
เครื่องขูดในเครื่องทำงานบนคอมพิวเตอร์โดยใช้ทรัพยากรและการเชื่อมต่ออินเทอร์เน็ต มีข้อเสียคือทำให้คอมพิวเตอร์ทำงานช้าลงเมื่อใช้งานเครื่องขูด นอกจากนี้ยังส่งผลต่อตัวพิมพ์ใหญ่ของข้อมูล ISP เมื่อกำหนดให้ทำงานบน URL จำนวนมาก
ในทางตรงกันข้าม เครื่องมือขูดบนคลาวด์ทำงานบนเซิร์ฟเวอร์นอกสถานที่ซึ่งให้บริการโดยบริษัทที่พัฒนาเครื่องขูด ซึ่งช่วยให้แน่ใจได้ว่าทรัพยากรคอมพิวเตอร์จะว่าง และผู้ใช้สามารถทำงานอื่นๆ ได้พร้อมๆ กัน ผู้ใช้จะได้รับการแจ้งเตือนเมื่อการขูดเสร็จสิ้น
รับ ใบรับรองวิทยาศาสตร์ข้อมูล ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
การขูดเว็บด้วยวิธีการต่างๆ
สี่วิธีการขูดเว็บที่ใช้กันอย่างแพร่หลายคือ:
- การแยกวิเคราะห์ข้อมูลจากเว็บโดยใช้วิธีสตริง
- การแยกวิเคราะห์ข้อมูลโดยใช้นิพจน์ทั่วไป
- การดึงข้อมูลโดยใช้ HTML parser
- ขูดข้อมูลโดยโต้ตอบกับส่วนประกอบจากเว็บไซต์อื่น
การแยกวิเคราะห์ข้อมูลจากเว็บโดยใช้วิธีสตริง
- เทคนิคนี้จัดหาข้อมูลจากเว็บไซต์โดยใช้วิธีสตริง ในการค้นหาข้อมูลที่ต้องการจากข้อความ HTML สามารถใช้เครื่องมือ find () ได้ การใช้เครื่องมือนี้ สามารถรับแท็กชื่อได้จากเว็บไซต์
- หากทราบดัชนีของอักขระตัวแรกและตัวสุดท้ายของชื่อ คุณสามารถใช้สตริงสไลซ์เพื่อขูดชื่อได้
- เครื่องมือ find () จะคืนค่าการเกิดสตริงย่อยแรก จากนั้นดัชนีของแท็กเริ่มต้น <title> สามารถรับได้โดยใช้สตริง ” <title> เพื่อรับ หา ().
- ข้อมูลที่น่าสนใจคือดัชนีหัวเรื่อง ไม่ใช่ดัชนีของ <title> ในการรับดัชนีสำหรับตัวอักษรตัวแรกในชื่อเรื่อง สามารถเพิ่มความยาวของสตริง “<title> ลงในดัชนีชื่อได้
- ตอนนี้ เพื่อให้ได้ดัชนีของส่วนสุดท้าย </title> สามารถใช้สตริง “</title>” ได้
- เมื่อได้ส่วนแรกและส่วนปิดของชื่อแล้ว สามารถแยกวิเคราะห์ชื่อทั้งหมดได้โดยการแบ่งสตริง HTML นี่คือโปรแกรมที่ต้องทำ:
>>> url = “ http://olympus.realpython.org/profiles/poseidon “
>>> หน้า = urlopen(url)
>>> html = page.read().decode("utf-8")
>>> start_index = html.find(“<title>”) + len(“<title>”)
>>> end_index = html.find(“</title>”)
>>> ชื่อ = html[start_index:end_index]
>>> ชื่อเรื่อง
'\n<head>\n<title >โปรไฟล์: โพไซดอน'
สังเกตการมีอยู่ของโค้ด HTML ในชื่อ
การแยกวิเคราะห์ข้อมูลโดยใช้นิพจน์ทั่วไป
- Regular Expressions หรือที่เรียกว่า regexes คือรูปแบบที่ใช้สำหรับค้นหาข้อความภายในสตริง ตัวแยกวิเคราะห์นิพจน์ปกติได้รับการสนับสนุนโดย Python ผ่านโมดูลใหม่
- ในการเริ่มต้นด้วยการแยกวิเคราะห์นิพจน์ทั่วไป ควรนำเข้าโมดูล re ก่อน อักขระพิเศษที่เรียกว่า metacharacters ใช้ในนิพจน์ทั่วไปเพื่อกล่าวถึงรูปแบบต่างๆ
- ตัวอย่างเช่น เครื่องหมายดอกจันพิเศษ (*) ใช้เพื่อแสดงถึง 0
- ตัวอย่างของการใช้ findall () เพื่อค้นหาข้อความภายในสตริงสามารถดูได้ที่ด้านล่าง
>>> อีกครั้ง findall (“xy*, “ac”)
['ac']
- ในโปรแกรม python นี้ อาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สองแสดงถึงนิพจน์ทั่วไปและสตริงที่จะตรวจสอบตามลำดับ รูปแบบ “xy* z” จะจับคู่กับส่วนใดๆ ของสตริงที่ขึ้นต้นด้วย “x” และลงท้ายด้วย “z” เครื่องมืออีกครั้ง findall () ส่งคืนรายการที่มีการแข่งขันทั้งหมด
- สตริง "xz" ตรงกับรูปแบบนี้ ดังนั้นจึงอยู่ในรายการ
- สามารถใช้จุด (.) เพื่อแสดงอักขระตัวเดียวในนิพจน์ทั่วไป
การดึงข้อมูลโดยใช้ HTML parser
แม้ว่านิพจน์ทั่วไปจะมีประสิทธิภาพในรูปแบบการจับคู่ แต่ตัวแยกวิเคราะห์ HTML ที่ออกแบบมาโดยเฉพาะเพื่อขูดหน้า HTML นั้นสะดวกและรวดเร็วกว่า ห้องสมุดซุปมีการใช้กันอย่างแพร่หลายเพื่อจุดประสงค์นี้
- ขั้นตอนแรกในการแยกวิเคราะห์ HTML คือการติดตั้งซุปที่สวยงามโดยการรัน:
$ python3 -m pip ติดตั้ง beautifulsoup4.
ดูรายละเอียดการติดตั้งได้โดยใช้ Run pip นี่คือโปรแกรมสร้างวัตถุซุปที่สวยงาม:
นำเข้าอีกครั้ง
จาก urllib.request นำเข้า urlopen
url = “http://olympus.realpython.org/profiles/dionysus”
หน้า = urlopen(url)
html = page.read().decode(“utf-8”)
pattern = “<title.*?>.*?</title.*?>”
match_results = re.search (รูปแบบ, html, re.IGNORECASE)
ชื่อเรื่อง = match_results.group()
title = re.sub(“<.*?>”, “”, title) # ลบแท็ก HTML
พิมพ์ (ชื่อเรื่อง)
- เรียกใช้โปรแกรมซุปที่สวยงามโดยใช้ python โปรแกรมจะเปิด URL ที่ต้องการ อ่านข้อความ HTML จากหน้าเว็บเป็นสตริง และมอบหมายให้ตัวแปร HTML เป็นผลให้วัตถุซุปที่สวยงามถูกสร้างขึ้นและมอบให้กับตัวแปรซุป
- วัตถุซุปที่สวยงามถูกสร้างขึ้นด้วยข้อโต้แย้งสองข้อ อาร์กิวเมนต์แรกมี HTML ที่จะคัดลอก และอาร์กิวเมนต์ที่สองมีสตริง "html parser” ที่แสดงถึงตัวแยกวิเคราะห์ HTML ของ Python
ขูดข้อมูลโดยโต้ตอบกับส่วนประกอบจากเว็บไซต์อื่น
โมดูล ” url lib” ใช้เพื่อรับเนื้อหาของหน้าเว็บ บางครั้งเนื้อหาจะไม่แสดงอย่างสมบูรณ์ และไม่สามารถเข้าถึงเนื้อหาที่ซ่อนอยู่บางส่วนได้
- ไลบรารี Python ไม่มีตัวเลือกในการโต้ตอบกับหน้าเว็บโดยตรง สามารถใช้แพ็คเกจของบุคคลที่สามเช่น Mechanical Soup เพื่อจุดประสงค์นี้
- ซุปเครื่องกลติดตั้งเบราว์เซอร์หัวขาด เบราว์เซอร์ที่ไม่มี UI แบบกราฟิก (ส่วนต่อประสานผู้ใช้) เบราว์เซอร์นี้สามารถควบคุมได้ด้วยโปรแกรมหลาม
- ในการติดตั้ง Mechanical soup ให้รันโปรแกรม python ต่อไปนี้
$ python3 -m pip ติดตั้ง MechanicalSoup
- เครื่องมือ pip แสดงรายละเอียดของแพ็คเกจที่ติดตั้ง
วัตถุประสงค์ของการขูดเว็บ
รายการต่อไปนี้แสดงวัตถุประสงค์ทั่วไปในการขูดเว็บ
- ขูดรายละเอียดของราคาหุ้นและโหลดไปยังแอป API
- จัดหาข้อมูลจากสมุดหน้าเหลืองเพื่อสร้างลูกค้าเป้าหมาย
- ขูดข้อมูลจากตัวค้นหาร้านค้าเพื่อระบุที่ตั้งธุรกิจที่มีประสิทธิภาพ
- ขูดข้อมูลเกี่ยวกับผลิตภัณฑ์จาก Amazon หรือแพลตฟอร์มอื่นๆ เพื่อวิเคราะห์คู่แข่ง
- การหาข้อมูลเกี่ยวกับกีฬาเพื่อการเดิมพันหรือความบันเทิง
- แยกวิเคราะห์ข้อมูลด้านการเงินเพื่อศึกษาและวิจัยตลาด
บทสรุป
ข้อมูลมีอยู่ทุกหนทุกแห่งและไม่มีข้อมูลขาดแคลน กระบวนการแปลงข้อมูลดิบให้อยู่ในรูปแบบที่ใช้งานได้กลายเป็นเรื่องง่ายและเร็วขึ้นด้วยการถือกำเนิดของเทคโนโลยีใหม่ในตลาด ไลบรารีมาตรฐานของ Python มีเครื่องมือมากมายสำหรับการขูดเว็บ แต่เครื่องมือที่นำเสนอโดย PyPI จะทำให้กระบวนการง่ายขึ้น การขูดข้อมูลสามารถใช้เพื่อสร้างงานที่น่าตื่นเต้นได้มากมาย แต่สิ่งสำคัญอย่างยิ่งคือต้องเคารพความเป็นส่วนตัวและเงื่อนไขของเว็บไซต์ และต้องแน่ใจว่าเซิร์ฟเวอร์จะไม่รับส่งข้อมูลปริมาณมากบนเซิร์ฟเวอร์
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิทยาศาสตร์ข้อมูล เราขอแนะนำให้คุณเข้าร่วม หลักสูตร Executive Program in Data Science ระยะเวลา 12 เดือนจาก IIIT Bangalore ซึ่งคุณจะทำความคุ้นเคยกับแมชชีนเลิร์นนิง สถิติ EDA การวิเคราะห์ และอัลกอริทึมอื่นๆ ที่สำคัญสำหรับ การประมวลผลข้อมูล ด้วยการเปิดรับโครงการกว่า 60 โครงการ กรณีศึกษา และโครงการสำคัญ คุณจะเชี่ยวชาญเครื่องมือการเขียนโปรแกรมและภาษาสี่ภาษา รวมถึง Python, SQL และ Tableau คุณยังคงได้รับประโยชน์จากความได้เปรียบจากการเรียนรู้แบบเพื่อนที่ upGrad เสนอให้นักเรียนโดยให้การเข้าถึงฐานผู้เรียนมากกว่า 40,000
คุณจะได้เรียนรู้จากคณาจารย์ด้าน Data Science ชั้นนำของอินเดียและผู้เชี่ยวชาญในอุตสาหกรรมในช่วงเซสชั่นสดกว่า 40 เซสชั่น ซึ่งจะให้การสนับสนุนด้านอาชีพและการให้คำปรึกษาแบบ 360° เพื่อช่วยให้คุณได้รับตำแหน่งในบริษัทชั้นนำที่คุณเลือก