如何将Python Selenium多URL爬取结果按来源URL分组为列表
解决爬取结果按来源URL分组的问题
直接修改你的代码,为每个数据集创建独立列表存储结果,最后汇总即可:
# 初始化大列表,存放每个URL对应的结果子列表 grouped_results = [] for dataset in dataset_index[:3]: driver.get(dataset['dataset_link']) time.sleep(2) # 为当前URL创建空列表,存储该页面的爬取内容 current_url_data = [] filelist = driver.find_elements(By.XPATH, '//*[@id="filelist"]') for files in filelist: file_name = files.find_element(By.CLASS_NAME, 'c-download-item').text current_url_data.append(file_name) # 将当前URL的结果加入大列表(过滤空列表) if current_url_data: grouped_results.append(current_url_data) # 按期望格式输出分组结果 for idx, group in enumerate(grouped_results): print(f"[{'\n'.join(group)}]" + (',' if idx != len(grouped_results)-1 else ''))
关键说明
grouped_results作为总容器,每个元素对应一个来源URL的爬取结果列表。- 遍历每个
dataset时,用current_url_data单独存储当前页面的所有内容,避免不同URL的数据混在一起。 - 最后遍历总列表,通过
'\n'.join(group)将子列表内容按换行拼接,再套上括号输出。
输出示例
运行后会得到符合你需求的格式:
[BIOGEN_SCOTLAND_ESRI.zip Format: ESRI Shapefile, (50.7 kB) BIOSPH_SCOTLAND_ESRI.zip Format: ESRI Shapefile, (1.4 MB)], [COUNEUR_SCOTLAND_ESRI.zip Format: ESRI Shapefile, (35.8 kB) CNTRYPK_SCOTLAND_ESRI.zip Format: ESRI Shapefile, (183.2 kB)]
内容的提问来源于stack exchange,提问作者h1m aga1n
相关产品推荐
相关产品推荐

