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

如何修改Python脚本遍历URL列表并将结果存入CSV文件

修改方案:遍历URL列表并保存结果到CSV

修改后的完整代码

import requests
import pandas as pd

# 定义需要处理的URL列表
url_list = [
    'https://ws1.postescanada-canadapost.ca/AddressComplete/Interactive/Find/v2.10/json3ex.ws?Key=TF36-KU97-AB94-ZC85&Country=CAN&SearchTerm=L2A%200A2&LanguagePreference=en&LastId=CA%7CCP%7CENG%7C0A2-L2A&SearchFor=Everything&OrderBy=UserLocation&$block=true&$cache=true',
    # 在这里添加更多需要处理的URL
    'https://ws1.postescanada-canadapost.ca/AddressComplete/Interactive/Find/v2.10/json3ex.ws?Key=TF36-KU97-AB94-ZC85&Country=CAN&SearchTerm=M5V%202T6&LanguagePreference=en&LastId=CA%7CCP%7CENG%7C2T6-M5V&SearchFor=Everything&OrderBy=UserLocation&$block=true&$cache=true'
]

headers = {
    'authority': 'ws1.postescanada-canadapost.ca',
    'accept': '*/*',
    'accept-language': 'en-US,en;q=0.9',
    'cache-control': 'no-cache',
    'origin': 'https://www.canadapost-postescanada.ca',
    'pragma': 'no-cache',
    'referer': 'https://www.canadapost-postescanada.ca/ac/',
    'sec-ch-ua': '"Not A(Brand";v="99", "Google Chrome";v="121", "Chromium";v="121"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'cross-site',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36',
}

# 初始化空DataFrame存储所有结果
final_df = pd.DataFrame(columns=['results_subset_alpha', 'results_subset_beta'])

for url in url_list:
    try:
        # 发送请求并验证响应状态
        response = requests.get(url, headers=headers)
        response.raise_for_status()
        
        # 解析JSON响应
        response_json = response.json()
        results = response_json.get('Items', [])  # 避免无Items字段时抛出KeyError
        
        # 提取数据并生成临时DataFrame
        temp_data = {
            'results_subset_alpha': [item['Text'] for item in results],
            'results_subset_beta': [item['Description'] for item in results]
        }
        temp_df = pd.DataFrame(temp_data)
        
        # 追加到最终DataFrame
        final_df = pd.concat([final_df, temp_df], ignore_index=True)
        
    except Exception as e:
        print(f"处理URL {url} 时出错: {str(e)}")

# 将结果保存为CSV文件
final_df.to_csv('address_results.csv', index=False, encoding='utf-8')
print("结果已保存到 address_results.csv")

关键改动说明

  • URL批量处理:将单个URL改为url_list列表,可批量添加需要处理的目标地址。
  • 空DataFrame初始化:提前创建带指定列名的空DataFrame,确保后续追加数据的结构统一。
  • 循环遍历处理:逐个遍历URL列表,重复执行请求、解析、数据提取逻辑。
  • 异常捕获:添加try-except块,处理请求失败、JSON解析错误等异常,避免脚本中断并输出错误信息。
  • 数据追加:使用pd.concat将每个URL的临时结果合并到最终DataFrame,ignore_index=True保证索引连续不重复。
  • CSV保存:调用to_csv将最终结果写入文件,关闭索引列并指定UTF-8编码避免乱码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:13:21