Tôi không muốn thu thập dữ liệu đồng thời và bị chặn. Tôi muốn gửi một yêu cầu mỗi giây.Làm thế nào để cung cấp cho sự chậm trễ giữa mỗi yêu cầu trong phế liệu?
Trả lời
Có một setting cho rằng:
DOWNLOAD_DELAY
Mặc định:
0
Lượng thời gian (trong giây) mà downloader nên chờ đợi trước khi tải trang liên tiếp so với cùng trang mạng. Điều này có thể được sử dụng để tăng tốc độ thu thập dữ liệu để tránh đánh máy chủ quá khó.
DOWNLOAD_DELAY = 0.25 # 250 ms of delay
Đọc tài liệu: https://doc.scrapy.org/en/latest/index.html
Cảm ơn. Nó hoạt động :) –
Nếu bạn đặt 'DOWNLOAD_DELAY = 1', tôi không nghĩ bạn có thể nhận được 60 trang trong một phút. Nó cũng bị hạn chế bởi tốc độ tải xuống và tất cả các loại chi phí. Tôi sẽ nói rằng nó chỉ cung cấp cho bạn một giới hạn trên cạo để bạn không nhấn các trang web mục tiêu quá nhiều. –
Bạn cũng có thể thiết lập 'download_delay' thuộc tính trên nhện nếu bạn không muốn một sự chậm trễ tải toàn cầu. Xem http://doc.scrapy.org/en/latest/faq.html#what-does-the-response-status-code-999-means
class S(Spider):
rate = 1
def __init__(self):
self.download_delay = 1/float(self.rate)
tỷ lệ đặt ra một số tiền tối đa của các trang có thể được tải về trong một giây.
Bạn có thể thêm mô tả hoặc giải thích về điều này không. Vì nó đứng tôi phải bỏ phiếu câu trả lời này để xóa. – Numeron
chậm trễ Chúng ta có thể thiết lập trong 2 nói: -
Chúng tôi có thể xác định sự chậm trễ khi chạy bánh xích. Ví dụ: crawl mẫu scrapy --set DOWNLOAD_DELAY = 3 (có nghĩa là 3 giây chậm trễ giữa hai yêu cầu)
Hoặc nếu không chúng ta có thể xác định Globaly trong settings.py DOWNLOAD_DELAY = 3
bởi scrapy mặc định mất 0,25 giây chậm trễ giữa 2 yêu cầu.
nếu bạn muốn trì hoãn tải xuống chính xác một giây, hãy đặt DOWNLOAD_DELAY=1
là cách thực hiện.
Nhưng cũng có một tính năng tự động đặt độ trễ tải xuống được gọi là AutoThrottle
. Nó tự động đặt độ trễ dựa trên tải của cả máy chủ Scrapy và trang web bạn đang thu thập thông tin. Điều này làm việc tốt hơn là thiết lập một sự chậm trễ tùy ý.
đọc thêm về vấn đề này trên http://doc.scrapy.org/en/1.0/topics/autothrottle.html#autothrottle-extension
Tôi đã trườn hơn 100 tên miền và không bị chặn với AutoThrottle bật
Bên cạnh DOWNLOAD_DELAY, bạn cũng có thể sử dụng tính năng AUTOTHROTTLE của scrapy, https://doc.scrapy.org/en/latest/topics/autothrottle.html
Nó thay đổi số tiền trễ giữa các yêu cầu tùy thuộc vào tập tin cài đặt. Nếu bạn đặt 1 cho cả thời gian bắt đầu và độ trễ tối đa, nó sẽ chờ 1 giây trong mỗi yêu cầu.
Mục đích ban đầu là thay đổi thời gian trễ để phát hiện bot của bạn sẽ khó hơn.
Bạn chỉ cần đặt nó trong settings.py như sau:
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_START_DELAY = 1
AUTOTHROTTLE_MAX_DELAY = 3
- 1. Làm thế nào để cung cấp cho một sự chậm trễ thời gian ít hơn một giây trong vba excel?
- 2. jquery mỗi lớp thêm vào với sự chậm trễ giữa
- 3. Làm thế nào để làm chậm trễ giữa mỗi vòng của hàm jQuery.each?
- 4. Làm thế nào để thêm một sự chậm trễ để kiểm soát Rails để thử nghiệm?
- 5. làm thế nào để sản xuất chậm trễ trong ruby
- 6. Làm thế nào để thiết lập sự chậm trễ trong Android?
- 7. Yêu cầu từ nhà cung cấp OpenID
- 8. Áp dụng sự chậm trễ giữa mỗi lần lặp của .each jQuery() phương pháp
- 9. Sự chậm trễ trong hoạt ảnh (TranslateAnimation)
- 10. Javascript: Làm thế nào để đặt một sự chậm trễ đơn giản ở giữa thực thi mã javascript?
- 11. java.lang.SecurityException "gps" nhà cung cấp vị trí yêu cầu sự cho phép ACCESS_FINE_LOCATION
- 12. Jquery: làm thế nào để ngủ hoặc chậm trễ?
- 13. Làm thế nào để chia sẻ dữ liệu giữa các yêu cầu trong Tornado Web
- 14. Làm thế nào để cung cấp dịch vụ OSGi mỗi khách hàng
- 15. Làm thế nào để ngăn chặn sự chậm trễ di chuyển trên Safari Mobile (iPad)?
- 16. Cung cấp params băm cho đặt/bài yêu cầu trong đường ray console
- 17. Làm thế nào để thực hiện Segue với sự chậm trễ
- 18. Rails cho mỗi yêu cầu băm?
- 19. Làm thế nào để tôi chuỗi chức năng tùy chỉnh sau một sự chậm trễ?
- 20. Maven gói .bat script: làm thế nào để thêm một sự chậm trễ?
- 21. Làm thế nào tôi có thể gọi một hàm có sự chậm trễ trong python?
- 22. Thêm chậm trễ để MouseLeave trong jquery
- 23. Không thể tìm thấy Nhà cung cấp Dữ liệu Khung được yêu cầu. (SqlClient)
- 24. Làm thế nào để cung cấp mật khẩu cho một lệnh nhắc nhở một trong bash?
- 25. Làm thế nào để cung cấp một mật khẩu cho PostgreSQL's createdb không tương tác?
- 26. SAML thực sự cung cấp bảo mật như thế nào?
- 27. Làm thế nào để sửa chữa chậm trễ trong javascript KeyDown
- 28. Sự chậm trễ kỳ lạ của Máy ứng dụng Google
- 29. Bí ẩn ~ 1 phút chậm trễ trong HTTP POST giữa trình duyệt và Nginx
- 30. làm thế nào để cung cấp cho 100% chiều cao cho bảng trong html5
[Đây] (http: // stackoverflow.com/questions/30404364/scrapy-delay-request) bạn có một giải pháp rõ ràng. – hereje