cuốn sách gpt4 ai đã làm

Làm cách nào để dừng trình tạo phản ứng khi cả hai con nhện đã hoàn thành

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 18:13:21 30 4
mua khóa gpt4 Nike

Tôi có mã này và khi cả hai con nhện kết thúc thì chương trình vẫn chạy.

#!C:\Python27\python.exe

từ lò phản ứng nhập khẩu Twisted.internet
từ Scrapy.crawler nhập Trình thu thập thông tin
từ nhật ký nhập khẩu vụn vặt, tín hiệu
từ carrefour.spiders.tesco nhập TescoSpider
từ carrefour.spiders.carr nhập CarrSpider
từ Scrapy.utils.project nhập get_project_settings
nhập luồng
import time

def tescofcn():
tescoSpider = TescoSpider()
cài đặt = get_project_settings()
trình thu thập thông tin = Trình thu thập thông tin(cài đặt)
trình thu thập thông tin.configure()
trình thu thập thông tin.crawl(tescoSpider)
trình thu thập thông tin.start()

def carrfcn():
carrSpider = CarrSpider()
cài đặt = get_project_settings()
trình thu thập thông tin = Trình thu thập thông tin(cài đặt)
trình thu thập thông tin.configure()
trình thu thập thông tin.crawl(carrSpider)
trình thu thập thông tin.start()


t1=threading.Thread(target=tescofcn)
t2=threading.Thread(target=carrfcn)

t1.start()
t2.start()
log.start()
lò phản ứng.run()

Khi tôi cố gắng chèn nó vào hai chức năng

crawler.signals.connect(reactor.stop, signal=signals.spider_closed)

, đối với cả nhện và nhện chậm hơn, lò phản ứng cuối nhanh hơn sẽ bị chấm dứt, mặc dù anh ta vẫn chưa kết thúc.

câu trả lời hay nhất

Những gì bạn có thể làm là tạo một hàm kiểm tra danh sách chạy của con nhện và kết nối nó vớisingals.spider_close.

từ Scrapy.utils.trackref nhập iter_all


def close_reactor_if_no_spiders():
Running_spiders = [nhện cho nhện trong iter_all('Spider')]

nếu không chạy_spiders:
lò phản ứng.stop()

crawler.signals.connect(close_reactor_if_no_spiders, signal=signals.spider_closed)

Tuy nhiên, tôi vẫn khuyên bạn nên sử dụng phế liệu để quản lý việc chạy nhiều nhện.

Về python - cách dừng trình tạo phản ứng khi cả hai con nhện kết thúc, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/25480298/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress