Tôi đã viết một trình thu thập làm việc sử dụng scrapy,
bây giờ tôi muốn kiểm soát nó thông qua một webapp Django, mà là để nói:Làm thế nào để cài đặt và khởi động một con nhện Scrapy lập trình (url và cài đặt)
- Set 1 hoặc nhiều
start_urls
- Set 1 hoặc nhiều
allowed_domains
- Set
settings
giá trị - Bắt đầu nhện
- Dừng/tạm dừng/tiếp tục một con nhện
- truy xuất một số chỉ số trong khi chạy
- lấy lại một số chỉ số sau khi hoàn tất.
Lúc đầu, tôi nghĩ rằng scrapyd đã được thực hiện cho điều này, nhưng sau khi đọc tài liệu, có vẻ như đó là một daemon có thể quản lý 'nhện đóng gói', còn gọi là 'trứng vụn'; và rằng tất cả các cài đặt (start_urls
, allowed_domains
, settings
) vẫn phải được mã hóa cứng trong chính 'quả trứng gầy'; vì vậy nó không giống như một giải pháp cho câu hỏi của tôi, trừ khi tôi bỏ lỡ một cái gì đó.
Tôi cũng đã xem câu hỏi này: How to give URL to scrapy for crawling?; Nhưng câu trả lời hay nhất để cung cấp nhiều url là đủ điều kiện bởi tác giả himeslf như một 'hack xấu xí', liên quan đến một số quy trình con trăn và xử lý shell phức tạp, vì vậy tôi không nghĩ giải pháp được tìm thấy ở đây. Ngoài ra, nó có thể hoạt động cho start_urls
, nhưng dường như không cho phép allowed_domains
hoặc settings
.
Sau đó, tôi đã xem xét scrapy webservices: Có vẻ như đó là giải pháp tốt để truy lục số liệu thống kê. Tuy nhiên, nó vẫn đòi hỏi một con nhện chạy, và không có đầu mối để thay đổi settings
Có một số câu hỏi về chủ đề này, không ai trong số họ có vẻ khả quan:
- using-one-scrapy-spider-for-several-websites Cái này có vẻ lỗi thời, như scrapy có phát triển rất nhiều kể từ 0,7
- creating-a-generic-scrapy-spider Không có câu trả lời được chấp nhận, vẫn nói về việc điều chỉnh thông số trình bao.
Tôi biết rằng phế liệu được sử dụng trong môi trường sản xuất; và một công cụ như scrapyd cho thấy rằng có một số cách để xử lý những yêu cầu này (tôi không thể tưởng tượng rằng những quả trứng phế liệu scrapyd đang xử lý được tạo ra bằng tay!)
Cảm ơn rất nhiều sự giúp đỡ của bạn.
Scrapy được tạo ra với 'lệnh deploy'; có lẽ bạn có thể kiểm tra [Django Dynamic Scraper] (https://github.com/holgerd77/django-dynamic-scraper) để biết các gợi ý về cách tích hợp kiểm soát nhện Scrapy ở Django. –
Bạn đã xem [công cụ gọn gàng] (http://doc.scrapy.org/en/latest/topics/commands.html) hoặc [dự án slybot] (https://github.com/scrapy/slybot) cho cảm hứng? – jah
Câu trả lời của tôi http://stackoverflow.com/questions/9814827/creating-a-generic-scrapy-spider/13054768#13054768 có thể giúp – djinn