Tôi có một trang web mà trình thu thập thông tin của tôi cần theo dõi một chuỗi. Vì vậy, ví dụ, nó cần phải đi a1, b1, c1 trước khi nó bắt đầu đi a2 vv mỗi a, b và c được xử lý bởi các hàm phân tích khác nhau và các url tương ứng được tạo trong đối tượng Yêu cầu và được sinh ra. Sau đây khoảng minh họa mã Tôi đang sử dụng:Phế liệu dường như không hoạt động trên DFO
class aspider(BaseSpider):
def parse(self,response):
yield Request(b, callback=self.parse_b, priority=10)
def parse_b(self,response):
yield Request(c, callback=self.parse_c, priority=20)
def parse_c(self,response)
final_function()
Tuy nhiên, tôi thấy rằng chuỗi các crawl dường như là a1, a2, a3, b1, b2, b3, c1, c2, c3 đó là lạ kể từ khi tôi nghĩ rằng Scrapy là nghĩa vụ phải đảm bảo độ sâu đầu tiên.
Trình tự không cần phải nghiêm ngặt, nhưng trang web mà tôi đang cào có giới hạn tại chỗ nên Scrapy cần phải bắt đầu cào cấp c ngay khi có thể trước 5 cấp bs được thu thập thông tin. Làm thế nào điều này có thể đạt được?
Điều gì xảy ra nếu bạn bỏ cài đặt ưu tiên? –
Tương tự, nỗ lực của tôi trong việc thêm ưu tiên là cố gắng xem liệu tôi có thể ảnh hưởng đến kết quả hay không. – Mishari
Srcrapy sẽ không thu thập dữ liệu tự động bằng BaseSpider. Vì bạn đang sử dụng 'BaseSpider', điều rất quan trọng là hiển thị mã mà bạn đưa ra Yêu cầu a1, b1, c1, a2, b2, c2 (một số có thể được đặt bởi "Start-Urls" ... không chỉ 'b, c ". – wuliang