
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)
