Scrapy Tutorial: วิธีสร้าง Web-Crawler โดยใช้ Scrapy



ในบทความ Scrapy Tutorial นี้คุณจะได้เรียนรู้การสร้างโปรแกรมรวบรวมข้อมูลเว็บด้วยเทคนิคการดึงข้อมูลต่างๆและวิธีการจัดเก็บข้อมูลบนฐานข้อมูล

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

Scrapy คืออะไร?

Scrapy เป็นเฟรมเวิร์กการรวบรวมข้อมูลเว็บแบบโอเพนซอร์สที่เขียนด้วย python เดิมถูกออกแบบมาเพื่อใช้งาน แต่ยังสามารถใช้สำหรับการแยกข้อมูลโดยใช้ API ดูแลโดย Scrapinghub ltd.





Scrapy เป็นแพ็คเกจที่สมบูรณ์เมื่อต้องดาวน์โหลดหน้าเว็บประมวลผลและจัดเก็บข้อมูลบนไฟล์ .

fibonacci c ++ ซ้ำ

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



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

การสอนสถาปัตยกรรม scrapy-scrapy-edureka

Web-Crawler คืออะไร?

โปรแกรมรวบรวมข้อมูลเว็บคือโปรแกรมที่ค้นหาเอกสารบนเว็บโดยอัตโนมัติ โปรแกรมเหล่านี้ได้รับการตั้งโปรแกรมสำหรับการดำเนินการซ้ำ ๆ สำหรับการเรียกดูอัตโนมัติ

มันทำงานอย่างไร?



โปรแกรมรวบรวมข้อมูลเว็บค่อนข้างคล้ายกับบรรณารักษ์ ค้นหาข้อมูลบนเว็บจัดหมวดหมู่ข้อมูลแล้วจัดทำดัชนีและแค็ตตาล็อกข้อมูลสำหรับข้อมูลที่รวบรวมข้อมูลเพื่อเรียกค้นและจัดเก็บตามนั้น

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

มาดูแอปพลิเคชันต่างๆที่โปรแกรมรวบรวมข้อมูลเว็บสามารถใช้สำหรับ:

  • พอร์ทัลการเปรียบเทียบราคาจะค้นหารายละเอียดผลิตภัณฑ์เฉพาะเพื่อทำการเปรียบเทียบราคาในแพลตฟอร์มต่างๆโดยใช้โปรแกรมรวบรวมข้อมูลเว็บ

  • โปรแกรมรวบรวมข้อมูลเว็บมีบทบาทสำคัญมากในด้านการขุดข้อมูลสำหรับการดึงข้อมูล

  • เครื่องมือวิเคราะห์ข้อมูลใช้โปรแกรมรวบรวมข้อมูลเว็บเพื่อคำนวณข้อมูลสำหรับการดูหน้าเว็บลิงก์ขาเข้าและขาออกเช่นกัน

  • โปรแกรมรวบรวมข้อมูลยังทำหน้าที่ไปยังฮับข้อมูลเพื่อรวบรวมข้อมูลเช่นพอร์ทัลข่าวสาร

วิธีการติดตั้ง Scrapy

ในการติดตั้ง scrapy ในระบบของคุณขอแนะนำให้ติดตั้งบน Virtualenv เฉพาะ การติดตั้งใช้งานได้ค่อนข้างคล้ายกับแพ็คเกจอื่น ๆ ใน python หากคุณใช้ คอนด้า ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง scrapy:

conda ติดตั้ง -c conda-forge scrapy

คุณยังสามารถใช้สภาพแวดล้อม pip เพื่อติดตั้ง scrapy

คำถามสัมภาษณ์ Salesforce service cloud
pip ติดตั้ง scrapy

อาจมีการอ้างอิงการคอมไพล์เล็กน้อยขึ้นอยู่กับระบบปฏิบัติการของคุณ Scrapy เขียนด้วย python ล้วนๆและอาจขึ้นอยู่กับแพ็คเกจ python บางอย่างเช่น:

  • lxml - เป็นตัวแยกวิเคราะห์ XML และ HTML ที่มีประสิทธิภาพ

  • พัสดุ - ไลบรารีการแยก HTML / XML ที่เขียนด้านบนบน lxml

  • W3lib - เป็นตัวช่วยอเนกประสงค์สำหรับจัดการกับ URL และการเข้ารหัสหน้าเว็บ

  • บิด - กรอบเครือข่ายแบบอะซิงโครนัส

  • การเข้ารหัส - ช่วยในความต้องการด้านความปลอดภัยระดับเครือข่ายต่างๆ

เริ่มโครงการ Scrapy ครั้งแรกของคุณ

ในการเริ่มโครงการ scrapy แรกของคุณไปที่ไดเร็กทอรีหรือตำแหน่งที่คุณต้องการบันทึกไฟล์ของคุณและดำเนินการคำสั่งต่อไปนี้

scrapy startproject ชื่อโครงการ

หลังจากที่คุณดำเนินการคำสั่งนี้คุณจะได้รับไดเร็กทอรีต่อไปนี้ที่สร้างขึ้นบนตำแหน่งนั้น

  • ชื่อโครงการ /

    • scrapy.cfg: ใช้ไฟล์การกำหนดค่า

  • ชื่อโครงการ /

    • __init__.py: โมดูลหลามของโครงการ

    • items.py: ไฟล์นิยามรายการโครงการ

    • middlewares.py: ไฟล์ middlewares โครงการ

    • pipelines.py: ไฟล์ท่อโครงการ

    • settings.py: ไฟล์การตั้งค่าโครงการ

  • แมงมุม /

    • __init__.py: ไดเร็กทอรีที่คุณจะใส่สไปเดอร์ในภายหลัง

สร้างแมงมุมตัวแรกของคุณ

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

คุณเขียนโค้ดสำหรับสไปเดอร์ของคุณในไฟล์ python แยกต่างหากและบันทึกลงในไดเร็กทอรี projectname / spiders ในโปรเจ็กต์ของคุณ

quotes_spider.py

นำเข้าคลาส scrapy QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] สำหรับ url ใน urls: yield scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% หน้าที่เปิด (filename, 'wb') เป็น f: f.write (response.body) self.log ('ไฟล์ที่บันทึกไว้% s'% filename)

อย่างที่คุณเห็นเราได้กำหนดฟังก์ชันต่างๆในสไปเดอร์ของเรา

  • ชื่อ: มันระบุแมงมุมต้องไม่ซ้ำกันตลอดทั้งโครงการ

  • start_requests (): ต้องส่งคืนคำขอที่ทำซ้ำได้ซึ่งสไปเดอร์จะเริ่มรวบรวมข้อมูลด้วย

  • parse (): เป็นวิธีการที่จะเรียกใช้เพื่อจัดการกับคำตอบที่ดาวน์โหลดมาพร้อมกับคำขอแต่ละรายการ

การแยกข้อมูล

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

นำเข้าคลาส Scrapy QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): for quote in response.css ('div.quote'): yield {'text': quote.css (span.text :: text ') get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

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

การจัดเก็บข้อมูล

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

scrapy crawl quotes -o quotes.json

คำสั่งนี้จะสร้างไฟล์ quotes.json ที่มีรายการที่คัดลอกมาทั้งหมดซึ่งทำให้เป็นอนุกรมใน JSON .

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

สร้างสำเนาของวัตถุ java

หากคุณพบบทความเกี่ยวกับ“ Scrapy Tutorial” ที่เกี่ยวข้องโปรดดูที่ บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก

เราพร้อมช่วยเหลือคุณในทุกขั้นตอนในการเดินทางและจัดทำหลักสูตรที่ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น . หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นในการเขียนโปรแกรม Python และฝึกอบรมแนวคิด Python ทั้งหลักและขั้นสูงพร้อมกับ ชอบ

หากคุณพบคำถามใด ๆ โปรดอย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ“ Scrapy Tutorial” และทีมงานของเรายินดีที่จะตอบ