ฉันต้องการสร้างเว็บไซต์ที่แสดงการเปรียบเทียบระหว่างราคาสินค้าของ amazon กับ e-bay ข้อใดจะทำงานได้ดีกว่าและเพราะเหตุใด ผมค่อนข้างคุ้นเคยกับBeautifulSoupแต่ไม่มากกับScrapy ตีนตะขาบ
ฉันต้องการสร้างเว็บไซต์ที่แสดงการเปรียบเทียบระหว่างราคาสินค้าของ amazon กับ e-bay ข้อใดจะทำงานได้ดีกว่าและเพราะเหตุใด ผมค่อนข้างคุ้นเคยกับBeautifulSoupแต่ไม่มากกับScrapy ตีนตะขาบ
คำตอบ:
Scrapyเป็นเฟรมเวิร์กWeb-spider หรือweb scraperคุณให้ URL รูทของ Scrapy เพื่อเริ่มการรวบรวมข้อมูลจากนั้นคุณสามารถระบุข้อ จำกัด เกี่ยวกับจำนวน URL (จำนวน) ที่คุณต้องการรวบรวมข้อมูลและดึงข้อมูล ฯลฯ มันเป็นกรอบที่สมบูรณ์แบบสำหรับเว็บขูดหรือการรวบรวมข้อมูล
ในขณะที่
BeautifulSoupเป็นไลบรารีแยกวิเคราะห์ซึ่งทำงานได้ดีในการดึงเนื้อหาจาก URL และช่วยให้คุณสามารถแยกวิเคราะห์บางส่วนได้โดยไม่ต้องยุ่งยาก ดึงเฉพาะเนื้อหาของ URL ที่คุณให้แล้วหยุด มันจะไม่รวบรวมข้อมูลเว้นแต่คุณจะวางไว้ในลูปที่ไม่มีที่สิ้นสุดด้วยตนเองด้วยเกณฑ์บางอย่าง
พูดง่ายๆด้วย Beautiful Soup คุณสามารถสร้างสิ่งที่คล้ายกับ Scrapy ได้ สวยซุปเป็นห้องสมุดในขณะ Scrapy เป็นกรอบการทำงานที่สมบูรณ์
ฉันคิดว่าดีทั้งคู่ ... ตอนนี้ฉันกำลังทำโปรเจ็กต์ที่ใช้ทั้งสองอย่าง ก่อนอื่นฉันคัดลอกหน้าทั้งหมดโดยใช้ scrapy และบันทึกไว้ในคอลเลกชัน mongodb โดยใช้ไปป์ไลน์ของพวกเขารวมถึงดาวน์โหลดภาพที่มีอยู่บนหน้า หลังจากนั้นฉันใช้ BeautifulSoup4 เพื่อทำการโพรเซสซิงโดยที่ฉันต้องเปลี่ยนค่าแอตทริบิวต์และรับแท็กพิเศษ
หากคุณไม่ทราบว่าต้องการผลิตภัณฑ์ของหน้าใดเครื่องมือที่ดีจะเป็นเครื่องมือที่ดีเนื่องจากคุณสามารถใช้โปรแกรมรวบรวมข้อมูลเพื่อเรียกใช้เว็บไซต์ amazon / ebay ทั้งหมดเพื่อค้นหาผลิตภัณฑ์โดยไม่ต้องมีการวนซ้ำอย่างชัดเจน
ดูเอกสารประกอบการทำ scrapy ใช้งานง่ายมาก
ทั้งสองใช้เพื่อแยกวิเคราะห์ข้อมูล
Scrapy :
สวยซุป :
Beautiful Soup เป็นไลบรารี Python สำหรับดึงข้อมูลออกจากไฟล์ HTML และ XML
เราสามารถใช้แพ็คเกจนี้เพื่อรับข้อมูลจากสคริปต์ java หรือโหลดเพจแบบไดนามิก
Scrapy กับ BeautifulSoup เป็นหนึ่งในคำสั่งผสมที่ดีที่สุดที่เราสามารถใช้เพื่อขูดเนื้อหาแบบคงที่และไดนามิกได้
วิธีที่ฉันทำคือใช้ eBay / Amazon API แทน scrapy แล้วแยกวิเคราะห์ผลลัพธ์โดยใช้ BeautifulSoup
API ช่วยให้คุณสามารถรับข้อมูลแบบเดียวกับที่คุณจะได้รับจากโปรแกรมรวบรวมข้อมูล scrapy โดยไม่ต้องกังวลเกี่ยวกับการซ่อนตัวตนของคุณยุ่งเกี่ยวกับพร็อกซี ฯลฯ
Scrapy เป็นกรอบการขูดเว็บที่มาพร้อมกับสินค้ามากมายที่ทำให้การขูดง่ายขึ้นเพื่อให้เราสามารถมุ่งเน้นไปที่ตรรกะในการรวบรวมข้อมูลเท่านั้น สิ่งที่ฉันโปรดปรานบางอย่างที่ฉันดูแลเราอยู่ด้านล่าง
การตั้งค่าพร็อกซีตัวแทนผู้ใช้ส่วนหัว ฯลฯ : scrapy ช่วยให้เราตั้งค่าและหมุนพร็อกซีและส่วนหัวอื่น ๆ แบบไดนามิก
ไปป์ไลน์ไอเทม : ไปป์ไลน์ช่วยให้เราสามารถประมวลผลข้อมูลหลังจากการแยก ตัวอย่างเช่นเราสามารถกำหนดค่าไปป์ไลน์เพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์ mysql ของคุณ
คุกกี้: scrapy จะจัดการคุกกี้ให้เราโดยอัตโนมัติ
เป็นต้น
TLDR: scrapy เป็นเฟรมเวิร์กที่ให้ทุกสิ่งที่จำเป็นในการสร้างการรวบรวมข้อมูลขนาดใหญ่ มีคุณสมบัติต่างๆที่ซ่อนความซับซ้อนของการรวบรวมข้อมูลเว็บ เราสามารถเริ่มเขียนโปรแกรมรวบรวมข้อมูลเว็บได้โดยไม่ต้องกังวลกับภาระการติดตั้ง
ซุปสวย สวยซุปเป็นแพคเกจหลามสำหรับการแยก HTML และเอกสาร ด้วย Beautiful soup คุณสามารถแยกวิเคราะห์หน้าเว็บที่ดาวน์โหลดมาแล้ว BS4 เป็นที่นิยมและเก่ามาก ซึ่งแตกต่างจาก scrapy,คุณไม่สามารถใช้น้ำซุปที่สวยงามเท่านั้นที่จะทำให้โปรแกรมรวบรวมข้อมูล คุณจะต้องมีไลบรารีอื่น ๆ เช่นคำขอ urllib และอื่น ๆ เพื่อสร้างโปรแกรมรวบรวมข้อมูลด้วย bs4 อีกครั้งหมายความว่าคุณจะต้องจัดการรายการ URL ที่กำลังรวบรวมข้อมูลเพื่อรวบรวมข้อมูลจัดการคุกกี้จัดการพร็อกซีจัดการข้อผิดพลาดสร้างฟังก์ชันของคุณเองเพื่อพุชข้อมูลไปยัง CSV, JSON, XML เป็นต้นหากคุณต้องการเร่งความเร็ว กว่าที่คุณจะต้องใช้ไลบรารีอื่น ๆ เช่นการประมวลผลหลายขั้นตอน
เพื่อสรุปผล
Scrapy เป็นเฟรมเวิร์กที่สมบูรณ์ที่คุณสามารถใช้เพื่อเริ่มเขียนโปรแกรมรวบรวมข้อมูลได้โดยไม่ต้องยุ่งยาก
ซุปตาร์สวยคือไลบรารีที่คุณสามารถใช้เพื่อแยกวิเคราะห์หน้าเว็บ ไม่สามารถใช้เพียงอย่างเดียวในการขูดเว็บ
แน่นอนคุณควรใช้ scrapy สำหรับเว็บไซต์เปรียบเทียบราคาผลิตภัณฑ์ amazon และ e-bay ของคุณ คุณสามารถสร้างฐานข้อมูลของ URL และเรียกใช้โปรแกรมรวบรวมข้อมูลทุกวัน (งาน cron, ขึ้นฉ่ายสำหรับการจัดตารางเวลารวบรวมข้อมูล) และอัปเดตราคาในฐานข้อมูลของคุณวิธีนี้เว็บไซต์ของคุณจะดึงจากฐานข้อมูลเสมอและโปรแกรมรวบรวมข้อมูลและฐานข้อมูลจะทำหน้าที่เป็นส่วนประกอบแต่ละส่วน
BeautifulSoupเป็นไลบรารีที่ให้คุณดึงข้อมูลจากหน้าเว็บ
ในทางกลับกันScrapyเป็นกรอบงานซึ่งทำสิ่งต่างๆข้างต้นและสิ่งอื่น ๆ อีกมากมายที่คุณอาจต้องการในโครงการคัดลอกของคุณเช่นท่อสำหรับบันทึกข้อมูล
คุณสามารถตรวจสอบบล็อกนี้เพื่อเริ่มต้นใช้งาน Scrapy https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/
การใช้scrapyคุณสามารถบันทึกโค้ดได้มากมายและเริ่มต้นด้วยการเขียนโปรแกรมแบบมีโครงสร้างหากคุณไม่ชอบวิธีการเขียนไว้ล่วงหน้าของ scapy คุณสามารถใช้BeautifulSoupแทนวิธีการ scrapy ได้ โครงการขนาดใหญ่ใช้ประโยชน์ทั้งสองอย่าง
ความแตกต่างมีมากมายและการเลือกใช้เครื่องมือ / เทคโนโลยีใด ๆ ขึ้นอยู่กับความต้องการของแต่ละบุคคล
ความแตกต่างที่สำคัญบางประการ ได้แก่ :