Python爬虫问题:Selenium+BeautifulSoup爬取结果无法导出CSV
问题解决:Pandas DataFrame构造错误及爬取内容保存方案
错误根源
- 循环内
on_click变量被反复赋值,最终仅保留最后一条爬取到的字符串 - Pandas
DataFrame构造函数不支持直接传入单个字符串,必须接收列表、字典等结构化可迭代数据,因此触发ValueError: DataFrame constructor not properly called!
修正方案
- 初始化空列表存储所有
onclick内容 - 遍历标签时将有效
onclick值追加到列表 - 用列表构造DataFrame(指定列名优化CSV可读性)
- 导出为CSV文件
修正后的代码片段
替换原代码中从soup = BeautifulSoup(...)到最后的部分:
soup = BeautifulSoup(teste3, "html.parser") # 初始化列表存储所有结果 on_click_entries = [] for tag in soup.find_all(title="Vaga disponível."): on_click = tag.get('onclick') if on_click: print(on_click) on_click_entries.append(on_click) # 构造DataFrame并保存 df = pd.DataFrame(on_click_entries, columns=['onclick_content']) df.to_csv('TESTE.csv', index=False)
说明
index=False参数用于避免CSV中生成多余的索引列- 最终CSV文件会将每条
onclick内容单独放在一行,完全匹配你期望的输出格式
内容的提问来源于stack exchange,提问作者Alexandre Rodrigues
相关产品推荐
相关产品推荐

