Tôi đang cố gắng xây dựng một ứng dụng Django có chức năng giống như một cửa hàng. Các mục được cạo từ khắp nơi trên internet và cập nhật cơ sở dữ liệu dự án Django liên tục theo thời gian (cứ vài ngày một lần). Tôi đang sử dụng khuôn khổ Scrapy để thực hiện cạo, và trong khi có một thử nghiệm DjangoItem feature, tôi thà tránh xa nó vì nó không ổn định.Cách tốt nhất để liên tục xuất thông tin từ trình thu thập dữ liệu Scrapy vào cơ sở dữ liệu ứng dụng Django là gì?
Ngay bây giờ kế hoạch của tôi là tạo ra file XML của mặt hàng bò với Scrapy của XMLItemExporter
(docs here), và sử dụng những để loaddata
vào dự án Django như đồ đạc XML (docs here). Điều này có vẻ không sao bởi vì nếu một trong hai quy trình này có trục trặc, thì có một tập trung trung gian giữa chúng. Modularizing ứng dụng như một toàn thể cũng không có vẻ giống như một ý tưởng tồi.
Một số mối quan tâm là:
- Đó những tập tin này có thể là quá lớn để đọc vào bộ nhớ cho Django
loaddata
. - Điều đó tôi dành quá nhiều thời gian cho việc này khi có thể có giải pháp tốt hơn hoặc dễ dàng hơn, chẳng hạn như xuất trực tiếp vào cơ sở dữ liệu, đó là MySQL trong trường hợp này.
- Không ai có vẻ đã viết về quy trình này trực tuyến, điều này thật lạ khi xem xét Scrapy là một khuôn khổ tuyệt vời để cắm vào ứng dụng Django theo ý kiến của tôi.
- Không có hướng dẫn dứt khoát về việc tạo đồ đạc Django theo cách thủ công trên tài liệu của Django - có vẻ như nó hướng đến việc bán phá giá và tải lại đồ đạc từ chính ứng dụng.
Sự tồn tại của thử nghiệm DjangoItem cho thấy rằng Scrapy + Django là lựa chọn đủ phổ biến để có giải pháp tốt ở đây.
Tôi rất cảm kích mọi giải pháp, lời khuyên hoặc sự khôn ngoan về vấn đề này.
Scrapy + Django và mã đường ống dẫn ở đây: http://stackoverflow.com/questions/7883196/saving-django-model-from-scrapy-project – Lionel