2013-06-19 30 views
13

Tôi đang lên kế hoạch sử dụng tính năng vẽ web trong ứng dụng tôi hiện đang làm việc. Tôi đã làm một số nghiên cứu về Nutch và chạy một số thử nghiệm sơ bộ bằng cách sử dụng nó. Nhưng sau đó tôi đã gặp rắc rối. Nhưng khi tôi đã làm một số nghiên cứu sơ bộ và đã đi qua các tài liệu về scrapy tôi thấy rằng nó có thể nắm bắt chỉ cấu trúc dữ liệu (Bạn phải cung cấp cho tên div mà từ đó bạn muốn nắm bắt dữ liệu). Các phụ trợ của ứng dụng tôi đang phát triển dựa trên Python và tôi hiểu được sự cố là dựa trên Python và một số đã gợi ý rằng mẩu tin lưu niệm là tốt hơn so với Nutch.Scrapy Nutch

Yêu cầu của tôi là thu thập dữ liệu từ hơn 1000 trang web khác nhau và chạy tìm kiếm các từ khóa có liên quan trong thông tin đó. Có cách nào có thể đáp ứng được yêu cầu tương tự.

1) Nếu có, bạn có thể chỉ ra một số ví dụ về cách nó có thể được thực hiện?

2) Hoặc Nutch + Solr là phù hợp nhất với yêu cầu của tôi

+3

tên div không phải là một yêu cầu cho Scrapy, bạn có thể nắm bắt bất cứ điều gì bạn muốn. –

Trả lời

17

Scrapy sẽ làm việc một cách hoàn hảo trong trường hợp của bạn.

Bạn không cần phải cung cấp cho các div tên - bạn có thể nhận được bất cứ điều gì bạn muốn:

Scrapy đi kèm với cơ chế riêng của mình để trích xuất dữ liệu. Chúng được gọi là được gọi là bộ chọn XPath (hoặc chỉ là "bộ chọn") vì chúng "chọn" một số phần nhất định của tài liệu HTML được chỉ định bởi các biểu thức XPath .

Ngoài ra, bạn có thể sử dụng BeautifulSouplxml để trích xuất dữ liệu từ nội dung trang.

Bên cạnh đó, scrapy được dựa trên xoắn và hoàn toàn không đồng bộ và nhanh chóng.

Có rất nhiều ví dụ về nhện cào ở đây trên SO - chỉ cần xem qua các câu hỏi về thẻ . Nếu bạn có câu hỏi cụ thể hơn - chỉ cần hỏi.

Hy vọng điều đó sẽ hữu ích.

+0

Cảm ơn alecxe .. Tôi sẽ cố gắng cạo sau đó. Tôi đoán tôi phải làm một nghiên cứu tốt hơn về cùng. – Vidhu

+7

Có một bài báo gần đây về việc sử dụng [Scrapy with Solr] (http://searchhub.org/2013/06/13/indexing-web-sites-in-solr-with-python/). –

-7

Phế liệu cồng kềnh và quá mức cần thiết cho nhiều tác vụ. Đáng ngạc nhiên chậm. Mã của nó là mong manh, có những thay đổi liên tục phá vỡ tính tương thích retro. Nếu bạn sử dụng Scrapy, bạn sẽ dành nhiều thời gian hơn trong việc cố gắng hiểu rõ nội bộ của Scrapy để hoàn thành công việc.

+6

Xin chào Franco, tôi không đồng ý với tuyên bố rằng mẩu tin lưu niệm chậm. Tôi đã có thể thu thập dữ liệu khoảng 25.000 trang từ các trang web khác nhau trong khoảng hơn 2,5 giờ. Tôi hài lòng với tốc độ thu thập dữ liệu đó. Bạn có thể gặp khó khăn khi bắt đầu, nhưng khi bạn bắt đầu sử dụng nó nhiều hơn và nhiều hơn nữa ... bạn sẽ thích nó .. – Vidhu

+2

Tôi đã phát triển một số trình thu thập thông tin và tôi đã thực hiện một số tiêu chí chống lại golang, PHP, C và trình thu thập dữ liệu Java đang thực hiện cùng một nhiệm vụ. Các giải pháp Python đã gần như gần với C bằng cách sử dụng lxml cộng với Scrapy, những người khác đã chậm hơn. Điều duy nhất được cải thiện theo ý kiến ​​của tôi là tích hợp phần mềm trung gian trong một số trường hợp. Tôi tích hợp các mô hình Django cũng Tor mà không có bất kỳ vấn đề. –

+1

Tôi không đồng ý với phần "thay đổi liên tục" và tôi không đồng ý rằng rất khó tìm hiểu. Trái ngược với điều này, tôi sẽ nói là rất dễ dàng để bắt đầu. Tài liệu cũng rất sắc nét. –