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

如何批量采集15000个网页指定span标签的data-price属性值

批量采集可行性说明

完全可以实现该采集需求,无需接触站点后台数据库,仅通过网页访问权限即可完成。

核心实现逻辑
  • 按规则批量生成15000个目标URL,格式统一为https://example.com/[1-15000]
  • 合理控制请求频率与并发量,避免触发目标站点反爬策略,常规场景下设置1-3秒请求间隔即可
  • 请求拿到页面HTML内容后,通过DOM解析器定位ID为lowest-1、lowest-2、lowest-3的三个span标签,直接提取其data-price属性值
  • 将采集到的页码、三个价格值对应存储为CSV、JSON等结构化格式方便后续处理
参考代码(Python实现)
import time
import csv
import requests
from bs4 import BeautifulSoup

# 配置参数
MAX_PAGE = 15000
BASE_URL = "https://example.com/{}"
REQUEST_INTERVAL = 2  # 秒,可自行调整

# 存储文件初始化
with open("price_data.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["页码", "lowest-1价格", "lowest-2价格", "lowest-3价格"])

for page in range(1, MAX_PAGE + 1):
    try:
        # 发起请求
        url = BASE_URL.format(page)
        resp = requests.get(url, timeout=10)
        resp.raise_for_status()
        
        # 解析内容
        soup = BeautifulSoup(resp.text, "html.parser")
        price1 = soup.find("span", id="lowest-1")["data-price"]
        price2 = soup.find("span", id="lowest-2")["data-price"]
        price3 = soup.find("span", id="lowest-3")["data-price"]
        
        # 写入数据
        with open("price_data.csv", "a", newline="", encoding="utf-8") as f:
            writer = csv.writer(f)
            writer.writerow([page, price1, price2, price3])
        
        print(f"第{page}页采集完成,价格分别为{price1}、{price2}、{price3}")
        
        # 控制请求间隔
        time.sleep(REQUEST_INTERVAL)
    except Exception as e:
        print(f"第{page}页采集失败:{str(e)}")
        # 可按需添加失败重试逻辑
注意事项
  • 若目标页面为JavaScript动态渲染,静态请求拿不到完整HTML的情况下,可替换为selenium、playwright等模拟浏览器工具加载页面后再解析
  • 建议先跑前10页的测试任务,确认解析逻辑、数据准确性没问题后再启动全量采集
  • 若出现IP被封禁的情况,可按需接入代理IP池、增加请求间隔时间调整采集策略

内容的提问来源于stack exchange,提问作者HPA Informática

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:36:00