集蜂云 Doc Help

采集队列

使用采集队列

beeize-sdk-python 提供的请求队列管理功能,可以帮助开发者组织和调度网络请求,对成功和失败的请求进行标记。

将请求添加到队列

要将请求添加到队列中,可以使用 RequestQueue.add_request() 方法。

您可以使用 的请求来唯一标识请求。如果您尝试使用相同的唯一键添加更多请求, 只会添加第一个 。

读取请求

要从队列中获取下一个请求进行处理, 您可以使用 queue.fetch_next_request()方法。

若要从队列中获取有关特定请求的信息,请执行以下操作: 您可以使用 queue.get_request()方法。

处理请求

若要将请求标记为已处理,可以使用 queue.mark_request_as_handled()方法。

要将请求标记为未处理,以便重试该请求, 您可以使用 queue.reclaim_request()方法。

要检查队列中的所有请求是否都已处理, 您可以使用 queue.is_finished()方法。

完整示例

import requests from beeize.scraper import Scraper scraper = Scraper() queue = scraper.request_queue # 添加请求任务到队列 for page in range(1, 10): url = 'http://127.0.0.1:80?page={}'.format(page) request = {'url': url} queue.add_request(request) def fetch(url, retry_count=0): try: response = requests.get( url=url, headers=headers ) return response.text except (Exception,): if retry_count < 3: return fetch(url, retry_count + 1) # 消费队列中的请求任务 while queue.is_finished(): # 取任务 request = queue.fetch_next_request() url = request['url'] response = fetch(url) if not response: # 对失败请求进行标记 queue.reclaim_request(request) continue # 对成功请求进行标记 queue.mark_request_as_handled(request)

云平台展示-采集队列

采集队列1.png
Last modified: 16 十月 2024