如何用Python Requests库批量处理URL及应对非整批数量场景
用Requests批量处理URL(支持非整批数量)
要实现分批次处理URL,不管总数是不是整批,核心是利用Python列表的切片特性——切片时如果结束索引超出列表长度,会自动取到最后一个元素,完美处理1001、507这类非整批的情况。
实现步骤
- 定义每批处理的URL数量(比如100)
- 按批次切片遍历URL列表,每一批处理完再取下一批
- 对每一批里的URL逐个发起请求(Requests是同步库,分批次主要用于流程管控)
修改后的代码
import requests def req_proxy(url: str, http_flag: bool): try: response = requests.get(url, verify=http_flag) response.raise_for_status() # 主动抛出HTTP错误 return response except requests.exceptions.RequestException as e: print(f"请求URL失败: {url}, 错误信息: {e}") return None # 配置参数 BATCH_SIZE = 100 # 每批处理的URL数量 url_list = [] # 替换成你的实际URL列表 http_flag = True # 分批次处理 for i in range(0, len(url_list), BATCH_SIZE): batch_urls = url_list[i:i+BATCH_SIZE] print(f"正在处理第{i//BATCH_SIZE + 1}批,共{len(batch_urls)}个URL") for link in batch_urls: res = req_proxy(link, http_flag) if res: print(res.text) # 根据需求处理响应内容
关键说明
range(0, len(url_list), BATCH_SIZE):生成批次的起始索引,步长为每批数量。比如总数1001时,最后一次循环起始索引是1000,切片url_list[1000:1100]会自动取到第1001个元素- 新增异常捕获:避免单个URL请求失败导致整个流程中断
- 分批次日志:方便跟踪处理进度
内容的提问来源于stack exchange,提问作者boyenec
相关产品推荐
相关产品推荐

