You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网页爬取中如何使用for循环遍历多个URL?

批量爬取多个URL数据的实现方案

你当前的代码仅支持爬取单个URL的商品SKU信息,要实现批量爬取多个URL,只需要对核心逻辑做针对性修改,同时增加必要的异常处理保证稳定性。以下是修改后的完整代码及说明:

import datetime
from bs4 import BeautifulSoup
import requests

def get_url_data_from_url_request(url):
    print(">>> get_url_data_from_url_request: " + str(url))
    url_data = None
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
    }
    s = requests.session()
    s.keep_alive = False
    try:
        request = s.get(url, proxies=None, headers=headers)
        print("request.status_code: ", request.status_code )
        # 仅当请求成功时返回页面内容
        if request.status_code == 200:
            url_data = request.text
        else:
            print(f"请求失败,状态码: {request.status_code}")
    except Exception as e:
        print(f"请求URL时出错: {str(e)}")
    finally:
        request.connection.close()
        s.close()
    return url_data

def parse_sku_from_html(html_content):
    """从HTML内容中解析商品SKU"""
    if not html_content:
        return None
    try:
        soup = BeautifulSoup(html_content, "lxml")
        id_element = soup.find('span', {"itemprop": "sku"})
        return id_element.text.strip() if id_element else "未找到SKU"
    except Exception as e:
        print(f"解析SKU时出错: {str(e)}")
        return None

def main():
    print("bdr.sandbox")
    generated_on = datetime.datetime.now()
    print(generated_on)
    
    # 定义要爬取的多个URL列表,替换成你的目标地址
    source_product_urls = [
        "https://example.com/product1",
        "https://example.com/product2",
        "https://example.com/product3"
    ]
    
    # 遍历每个URL,逐个处理爬取与解析
    for url in source_product_urls:
        print(f"\n===== 开始处理URL: {url} =====")
        url_data = get_url_data_from_url_request(url=url)
        sku = parse_sku_from_html(url_data)
        print(f"最终获取SKU: {sku}")

if __name__ == '__main__':
    main()

核心改动点

  • 批量URL管理:新增source_product_urls列表,集中存放所有目标URL,支持随时添加、删除或修改爬取地址
  • 模块化拆分:将SKU解析逻辑独立为parse_sku_from_html函数,分离数据获取与数据解析的职责,让代码结构更清晰
  • 异常容错机制:在HTTP请求和HTML解析环节添加异常捕获,避免单个URL的爬取失败导致整个程序终止
  • 请求有效性校验:仅当HTTP请求返回状态码200时,才继续解析页面内容,过滤无效响应数据
  • 循环遍历处理:通过for url in source_product_urls实现批量遍历,逐个完成每个URL的爬取与解析流程

内容的提问来源于stack exchange,提问作者nesqluck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:12:18