如何修改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
相关产品推荐
相关产品推荐

