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

如何使用Python直接写入不含重复字符串的CSV文件?

直接写入无重复字符串的CSV文件方案

当然可以直接输出去重后的CSV文件!完全不需要先生成带重复数据的文件再二次处理,只需要在爬取/提取字符串的过程中实时去重,就能一步到位写入目标CSV。下面给你两种实用的实现思路:

方法1:用集合快速去重(无序)

集合(set)是Python中天然支持自动去重的数据结构,查找元素的效率极高,适合不需要保留原爬取顺序的场景。

import requests
from bs4 import BeautifulSoup
import csv

# 替换为你的目标维基百科页面URL
target_url = "https://en.wikipedia.org/wiki/Python_(programming_language)"
response = requests.get(target_url)
soup = BeautifulSoup(response.text, "html.parser")

# 提取目标字符串(示例:提取所有段落文本,你可根据需求修改选择器)
raw_strings = []
for paragraph in soup.find_all("p"):
    text = paragraph.get_text(strip=True)
    if text:  # 跳过空文本内容
        raw_strings.append(text)

# 用集合去重
unique_content = set(raw_strings)

# 直接写入CSV文件
with open("unique_results.csv", "w", newline="", encoding="utf-8") as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(["Unique Strings"])  # 写入表头
    for content in unique_content:
        writer.writerow([content])

方法2:保持原顺序的去重

如果需要保留字符串在页面中出现的原始顺序,可以用一个辅助集合记录已出现的内容,同时用列表存储最终的去重结果:

import requests
from bs4 import BeautifulSoup
import csv

target_url = "https://en.wikipedia.org/wiki/Python_(programming_language)"
response = requests.get(target_url)
soup = BeautifulSoup(response.text, "html.parser")

seen = set()  # 记录已处理过的字符串
ordered_unique_content = []

for paragraph in soup.find_all("p"):
    text = paragraph.get_text(strip=True)
    # 仅当文本非空且未出现过时,才加入结果列表
    if text and text not in seen:
        seen.add(text)
        ordered_unique_content.append(text)

# 直接写入CSV文件
with open("ordered_unique_results.csv", "w", newline="", encoding="utf-8") as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(["Ordered Unique Strings"])
    for content in ordered_unique_content:
        writer.writerow([content])

关键注意点

  • 提取逻辑适配:上述示例提取的是段落文本,你需要根据自己的需求修改BeautifulSoup的选择器(比如提取链接文本、列表项等)。
  • 编码问题:写入CSV时指定encoding="utf-8"可以避免中文或特殊字符乱码。
  • 效率优化:用集合seen来判断元素是否已存在,时间复杂度是O(1),比直接用列表的in操作(O(n))高效得多,适合处理大篇幅页面数据。

内容的提问来源于stack exchange,提问作者info-farmer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:13:52