2013-10-30 19 views
87

Tôi muốn tạo một trang web cho thấy sự so sánh giữa giá sản phẩm amazon và e-bay. Điều nào trong số này sẽ hoạt động tốt hơn và tại sao? Tôi hơi quen thuộc với BeautifulSoup nhưng không quá nhiều với Trình thu thập thông tin bị lơ lửng.Sự khác biệt giữa trình thu thập thông tin BeautifulSoup và Scrapy?

+6

Tại sao bạn sử dụng trình thu thập thông tin khi cả hai trang web đó có API tuyệt vời? http://aws.amazon.com/python/ http://developer.ebay.com/common/api/ –

+3

Tôi đến từ Ấn Độ và tôi nghĩ rằng *** Amazon-Api *** không hỗ trợ máy chủ của Ấn Độ. không có ** api (ngôn ngữ) ** cho Ấn Độ. *** HOSTS = {'ca': 'ecs.amazonaws.ca', 'cn': 'webservices.amazon.cn', 'de': 'ecs.amazonaws.de', 'es': 'webservices.amazon .es ',' fr ':' ecs.amazonaws.fr ',' it ':' webservices.amazon.it ',' jp ':' ecs.amazonaws.jp ',' uk ':' ecs.amazonaws.co .uk ',' us ':' ecs.amazonaws.com ',} *** –

+9

Và nếu tôi muốn thu thập dữ liệu một số trang web khác không có API thì sao? –

Trả lời

158

Scrapy là một Web-nhện hoặc scraper web framework, Bạn cho Scrapy URL gốc để bắt đầu bò, sau đó bạn có thể xác định những hạn chế trên có bao nhiêu (số) URL bạn muốn thu thập và lấy, vv . Đó là một khuôn khổ hoàn chỉnh cho việc tìm kiếm trên web hoặc thu thập thông tin.

Trong khi

BeautifulSoup là một phân tích thư viện mà cũng làm một công việc khá tốt của lấy nội dung từ URL và cho phép bạn phân tích một số bộ phận trong số họ không có bất kỳ rắc rối. Nó chỉ tìm nạp nội dung của URL mà bạn cung cấp và sau đó dừng lại. Nó không thu thập dữ liệu trừ khi bạn đặt thủ công nó bên trong một vòng lặp vô hạn với các tiêu chí nhất định.

Nói cách đơn giản, với Beautiful Soup bạn có thể xây dựng một cái gì đó tương tự như Scrapy. Súp đẹp là một thư viện trong khi Scrapy là một khung hoàn chỉnh .

nguồn: http://www.quora.com/Python-programming-language-1/How-is-BeautifulSoup-different-from-Scrapy

+1

nhanh hơn, ý tôi là tôi đang sử dụng BeautifulSoup và mất khoảng 10 giây để xóa dữ liệu? không cạo nhanh hơn so với beautifulsoup? – shuboy2014

+0

Nếu bạn sử dụng beautifulsoup với mã chặn, có thể sẽ nhanh hơn nếu có yêu cầu độc lập, nhưng tôi đoán bạn cũng có thể sử dụng beautifulsoup với asyncio để đạt được hiệu suất tốt hơn. – dyeray

12

Tôi nghĩ cả hai đều tốt ... im đang thực hiện dự án ngay bây giờ để sử dụng cả hai. Trước tiên, tôi xóa tất cả các trang bằng cách sử dụng mẩu tin lưu niệm và lưu trên bộ sưu tập mongodb bằng cách sử dụng đường ống của họ, cũng tải xuống hình ảnh tồn tại trên trang. Sau đó tôi sử dụng BeautifulSoup4 để thực hiện một chế biến pos, nơi tôi phải thay đổi các giá trị thuộc tính và nhận được một số thẻ đặc biệt.

Nếu bạn không biết sản phẩm nào bạn muốn, một công cụ tốt sẽ có nhiều mẩu tin lưu niệm vì bạn có thể sử dụng trình thu thập thông tin để chạy tất cả các trang web amazon/ebay tìm kiếm sản phẩm mà không cần lặp lại rõ ràng.

Hãy xem tài liệu cào bã, nó rất dễ sử dụng.

Chúc may mắn!

+0

Vì vậy, tôi có thể sử dụng ** Scrapy ** trên máy chủ web vì có nhiều phụ thuộc của nó như (Twisted, pywin32, pyOpenSSL ete ..). (Xin lỗi vì câu hỏi ngớ ngẩn này, tôi mới dùng python) –

+0

Trên máy chủ web? Tôi không bao giờ thử điều đó ... tôi sử dụng nó trên trình bao, thực thi "thu thập dữ liệu cặn kẽ rdenadai

4

Cách tôi làm điều đó là sử dụng eBay/Amazon API hơn scrapy, và sau đó phân tích các kết quả sử dụng BeautifulSoup.

API cung cấp cho bạn một cách chính thức để nhận cùng dữ liệu mà bạn có được từ trình thu thập dữ liệu không cần phải lo lắng về việc ẩn danh tính của bạn, gây rối với proxy, v.v.

+3

Câu hỏi rõ ràng yêu cầu các giải pháp không có API. – Rohanil

1

Cả hai đều đang sử dụng để phân tích cú pháp dữ liệu.

Scrapy:

  • Scrapy là một trang web nhanh cao cấp bò và khung cào web, sử dụng để thu thập thông trang web và trích xuất dữ liệu có cấu trúc từ các trang của họ.
  • Nhưng có một số hạn chế khi dữ liệu đến từ tập lệnh java hoặc tải động lực, chúng tôi có thể vượt qua nó bằng cách sử dụng các gói như giật gân, selenium, v.v ...

BeautifulSoup:

  • Beautiful Soup là một thư viện Python cho kéo dữ liệu ra HTML và file XML.

  • chúng tôi có thể sử dụng gói này để nhận dữ liệu từ tập lệnh java hoặc tải trang động.

Scrapy với BeautifulSoup là một trong những kết hợp tốt nhất chúng tôi có thể làm việc với cho cạo nội dung tĩnh và động

0

Sử dụng scrapy bạn có thể tiết kiệm tấn mã và bắt đầu với lập trình có cấu trúc, Nếu bạn không thích bất kỳ phương pháp viết sẵn bằng văn bản nào của scapy thì BeautifulSoup có thể được sử dụng ở vị trí của phương pháp cào. Dự án lớn có cả hai lợi thế.

Các vấn đề liên quan