การขูดเว็บเป็นวิธีที่มีประสิทธิภาพในการรวบรวมข้อมูลจากหน้าเว็บซึ่งกลายเป็นเครื่องมือที่มีประสิทธิภาพใน . ด้วยความหลากหลาย ห้องสมุด นำเสนอสำหรับการขูดเว็บเช่น งานของนักวิทยาศาสตร์ข้อมูลจะเหมาะสมที่สุด Scrapy เป็นเว็บเฟรมเวิร์กที่มีประสิทธิภาพซึ่งใช้สำหรับการแยกประมวลผลและจัดเก็บข้อมูล เราจะเรียนรู้วิธีสร้างโปรแกรมรวบรวมข้อมูลเว็บในบทช่วยสอน scrapy นี้หัวข้อที่กล่าวถึงในบล็อกนี้:
- Scrapy คืออะไร?
- Web Crawler คืออะไร?
- วิธีเล่น Scrapy
- เริ่มโครงการ Scrapy ครั้งแรกของคุณ
- สร้างแมงมุมตัวแรกของคุณ
- การแยกข้อมูล
- การจัดเก็บข้อมูลที่แยกออกมา
Scrapy คืออะไร?
Scrapy เป็นเฟรมเวิร์กการรวบรวมข้อมูลเว็บแบบโอเพนซอร์สที่เขียนด้วย python เดิมถูกออกแบบมาเพื่อใช้งาน แต่ยังสามารถใช้สำหรับการแยกข้อมูลโดยใช้ API ดูแลโดย Scrapinghub ltd.
Scrapy เป็นแพ็คเกจที่สมบูรณ์เมื่อต้องดาวน์โหลดหน้าเว็บประมวลผลและจัดเก็บข้อมูลบนไฟล์ .
fibonacci c ++ ซ้ำ
เป็นเหมือนโรงไฟฟ้าเมื่อพูดถึงการขูดเว็บด้วยหลายวิธีในการขูดเว็บไซต์ Scrapy จัดการงานที่ใหญ่กว่าได้อย่างง่ายดายขูดหลายหน้าหรือกลุ่ม URL ในเวลาไม่ถึงหนึ่งนาที ใช้ทวิสเตอร์ที่ทำงานแบบอะซิงโครนัสเพื่อให้เกิดการทำงานพร้อมกัน
มีสัญญาแมงมุมที่อนุญาตให้เราสร้างโปรแกรมรวบรวมข้อมูลทั่วไปและโปรแกรมรวบรวมข้อมูลเชิงลึก Scrapy ยังมีท่อไอเทมเพื่อสร้างฟังก์ชันในสไปเดอร์ที่สามารถดำเนินการต่างๆเช่นการแทนที่ค่าในข้อมูลเป็นต้น
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” และทีมงานของเรายินดีที่จะตอบ