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

如何在Python中同时执行任务以同步采集同一HTML源数据

问题解决:同步采集数据生成两个列表

问题背景

需要从同一HTML数据源生成两个列表,要求同时采集数据避免时间推移导致数据更新。现有代码分两次循环采集,导致第二个列表的数据已随时间更新,不符合预期。

现有代码

lok = []
num = 6
for _ in range(num):
    inner = driver.find_element_by_xpath(
        "/html/body/div[1]/div[2]/div/div/div/div[2]/div/div/div/div[2]/div[2]/div/div/div[2]/div[5]/span[1]").get_attribute(
        "innerHTML")
    lok.append(inner)
    time.sleep(3600)
    print(lok)


lokk = []
nums = 7
for _ in range(nums):
    inner = driver.find_element_by_xpath(
        "/html/body/div[1]/div[2]/div/div/div/div[2]/div/div/div/div[2]/div[2]/div/div/div[2]/div[5]/span[1]").get_attribute(
        "innerHTML")
    lokk.append(inner)
    time.sleep(3600)
    print(lokk)

当前采集结果

lok = ['1', '2', '3', '4', '5', '6']

lokk = ['7', '8', '9', '10', '11', '12', '13']

期望结果

lok = ['1', '2', '3', '4', '5', '6']

lokk = ['1', '2', '3', '4', '5', '6', '7']

解决方案

核心思路是只采集一次完整的序列,再根据两个列表的长度需求截取数据,确保两个列表基于同一批原始采集数据,避免时间差导致的更新问题。

修改后的代码:

# 先采集足够覆盖两个列表最大长度的数据
max_count = max(6, 7)
raw_data = []
for _ in range(max_count):
    inner = driver.find_element_by_xpath(
        "/html/body/div[1]/div[2]/div/div/div/div[2]/div/div/div/div[2]/div[2]/div/div/div[2]/div[5]/span[1]").get_attribute(
        "innerHTML")
    raw_data.append(inner)
    time.sleep(3600)

# 按需求生成两个列表
lok = raw_data[:6]
lokk = raw_data[:7]

print(f"lok = {lok}")
print(f"lokk = {lokk}")

代码说明

  • 先计算两个列表所需的最大采集次数(此处为7次),一次性完成所有数据采集并存入raw_data
  • 直接从raw_data中截取对应长度的元素生成目标列表,确保两个列表数据完全同步

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:55:16