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

python - Cách dừng trình thu thập dữ liệu ngẫu nhiên

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 08:56:22 25 4
mua khóa gpt4 Nike

Tôi muốn ngăn chặn con nhện nếu đáp ứng một số điều kiện nhất định. Tôi đã thử làm điều này:nâng cao CloseSpider('Một số văn bản')

sys.exit("TẮT MỌI THỨ!")

Nhưng nó không dừng lại. Đây là mã được viết để tăng ngoại lệ thay vì trả về và nó sẽ không hoạt động khi con nhện tiếp tục bò:

nhập khẩu phế liệu
từ yêu cầu nhập Scrapy.http

từ tutorial.items nhập DmozItem
từ Scrapy.Exceptions nhập CloseSpider
import sys

lớp DmozSpider(scrapy.Spider):
name = "hướng dẫn"
allow_domain = ["jabong.com"]
bắt đầu_urls = [
"http://www.jabong.com/women/shoes/sandals/?page=1"
]

trang_index = 1

phân tích cú pháp def (tự, phản hồi):
sản phẩm = reply.xpath('//li')

nếu sản phẩm:
cho sản phẩm trong sản phẩm:
mục = DmozItem()
item_url = sản phẩm.xpath('@data-url').extract()
item_url = "http://www.jabong.com/" + item_url[0] nếu item_url khác ''
nếu item_url:
request=Request(url=item_url,callback=self.parse_page2,meta={"item":item},
headers={"Chấp nhận":
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"})
request.meta['item'] = mục
yêu cầu năng suất
khác:
trở lại

self.page_index += 1
nếu self.page_index:
yêu cầu năng suất(url="http://www.jabong.com/women/shoes/sandals/?page=%s" % (self.page_index),
headers={"Người giới thiệu": "http://www.jabong.com/women/shoes/sandals/",
"X-Requested-With": "XMLHttpRequest"},
gọi lại=self.parse)

def pars_page2(tự, phản hồi):
kích thước=[]
mục = phản hồi.meta['item']
item['site_name'] = 'jabong'
mục['tags'] = ''
mục sản lượng

CẬP NHẬT: Thay vì quay trở lại, lũ nhện của tôi không dừng lại mặc dù tôi đã nâng clospider lên

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

trở lại Cũng hoạt động ở đây, không phải do bắt buộc mà do logic thu thập dữ liệu - vì bạn không còn tạo bất kỳ yêu cầu nào nữa.
Nhưng hãy nhớ rằng những gì bạn có thể hiểu là "con nhện không đóng" thực ra là các yêu cầu còn lại trong quy trình đã bắt đầu được xử lý và cần nhiều thời gian hơn để hoàn tất quá trình xử lý. Vì vậy, con nhện sẽ không thực thi trở lại dừng ngay lập tức vì vẫn còn yêu cầu trong quy trình. Khi tất cả chúng đã được xử lý xong, con nhện cuối cùng sẽ dừng lại nếu không có con nhện mới nào được tạo ra.

Về python - làm thế nào để dừng trình thu thập thông tin ngẫu nhiên, 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/29844131/

25 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
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