如果你用抓取(scraping)数据来搭建 prospect list,你迟早会遇到这个问题:我该怎么在线清洗并标准化这些数据?
如果你试过用 Google Sheets 来清理,就会发现它并不是为这类任务设计的。
比如:LinkedIn 导出的字段通常只有一个「full name」,但其他来源可能分别给你 first name 和 last name。Email 地址可能在抓取过程中出现拼写错误。日期格式五花八门……
这篇指南会带你解决 99% 的抓取数据问题。剩下那 1%,直接联系我,我来帮你搞定 👨💻
下面是本文会覆盖的清洗操作速览:
- 把文本转换为 Datetime、Number、Boolean
- 把 HTML 转为纯文本(移除 HTML 标签)
- 去掉文本中的多余空格
- 标准化数据(Find and Replace)
- 移除文本中的符号(表情等)
- 把 Full Name 拆分为 First Name 和 Last Name
- 数据去重(Deduplication)
- 验证 Email Addresses
- 从抓取文本中提取人名或公司名
从 CSV 导入或直接复制粘贴数据
Datablist 非常适合做数据清洗。它是一个在线 CSV editor,同时提供 cleaning、批量编辑(bulk editing)和 enrichment 功能。 而且单个 collection 可以扩展到数百万条数据。
打开 Datablist,创建一个 collection,然后把包含抓取数据的 CSV 文件导入进去。
创建新 collection 时,点击侧边栏的 + 按钮,然后点 “Import CSV/Excel” 上传文件。你也可以在 getting started 页面点击快捷入口,直接跳到文件导入步骤。
自动识别字段类型
Datablist 的导入助手会自动识别 email addresses、ISO 8601 格式的 Datetimes、Booleans、Numbers、URLs 等,前提是它们的格式足够规范。
如果你的数据需要更复杂的判断(比如不同的 datetime 格式、URL 或 email 的拼写错误),建议先按 Text 字段导入。下一节我会演示如何把 Text 字段再转换为 Datetime、Boolean 或 Number。
文本转换为 Datetime、Number、Boolean
Marie Kondo 说过:“真正的生活,是从你把家整理好之后开始的。”抓取数据也一样:真正的 Sales,是从你把数据整理好之后才开始的 😅
当你需要按 date(创建时间、融资时间等)、按 number(价格、员工数),或按 boolean 做筛选/分组时,把它们变成原生类型而不是一段 text,会轻松很多。
在 “Clean” 菜单里打开 “Text to Datetime, Number, Checkbox” 工具。
将任意文本转换为 Datetime 格式
Datetime 有一个国际通用标准格式:ISO 8601,结构固定。如果你的数据本身就是 ISO 8601,导入时 Datablist 会自动创建 Datetime 字段来存储。
但如果你的 Date/Datetime 不是 ISO 8601,就需要你指定当前使用的格式,这样 Datablist 才能把它转换成结构化的 Datetime。
选择要转换的字段,然后选 “Convert to Datetime”。
你可以从常见格式列表中选择(Google Sheets 和 Excel 常用格式),或者选 “Custom format” 自定义 datetime 格式。
从文本创建 Checkbox(Boolean)
导入时,Datablist 会把包含 “Yes, No”、“TRUE, FALSE” 等值的列自动识别为 Checkbox 字段。更复杂的情况,就用这个转换器处理。
你可以定义哪些值(用逗号分隔)会被转换为 checked。其他值则保持 unchecked。
从文本中提取数值(Number)
使用 “Text to number” 转换器可以:
- 按自定义小数点/千分位分隔符来标准化数字
- 从包含字母的文本里抽取数字
清洗抓取数据
HTML 转纯文本(移除 HTML 标签)
抓取工具经常会把 HTML 代码一起抓下来,所以你的文本字段里可能混着各种 HTML tags。
HTML 里有链接、图片、带 bullet points 的列表,也包含段落和多行结构。
我们的目标是:尽量保留 HTML 的“排版信息”,但把不可读的代码转换成可读的纯文本。
Datablist 的 HTML to Text 转换器会保留换行,并把 bullet points 转成以 - 开头的列表。
要把带 HTML tags 的文本转换成纯文本,在 “Edit” 菜单里打开 Bulk Edit。
选择包含 HTML tags 的字段,然后选 “Convert HTML into plain text”。
去掉多余空格
抓取数据的另一个高频问题是多余空格:可能来自换行、Tab,以及 HTML 里各种“空白字符”。
Datablist 内置了专门的清洗工具来处理多余空格:
- 移除词与词之间的多余空格
- 删除空行
- 去掉每行开头和结尾的空格
要移除多余空格,在 “Edit” 菜单打开 “Bulk Edit”,选中字段,然后选择 “Remove extra spaces”。
统一文本大小写
调整文本大小写很简单:在 “Edit” 菜单里打开 “Bulk Edit”。
选择要处理的字段,然后用 “Change text case”。
支持 4 种模式:
- Uppercase - 全部转成大写。例如:
john=>JOHN - Lowercase - 全部转成小写。例如:
API=>api - Capitalize - 每个单词首字母大写。例如:
john is a good man=>John Is A Good Man - Capitalize only the first word - 只把第一个单词首字母大写。例如:
john is a good man=>John is a good man
移除文本中的符号
从 HTML 页面抓下来的文本,或来自用户输入的内容(比如 LinkedIn profile title),经常会包含一些符号:表情、特殊字符等。这些字符会影响你的数据处理流程。比如:名字末尾多了一个表情,可能就会让它无法被去重算法识别。
Datablist 内置了处理器,可以移除数据中所有非文本符号。
在 “Edit” 菜单点 “Bulk Edit”,选择一个文本字段,然后选 “Remove symbols”。
预览没问题后,运行转换来批量处理数据。
使用 Find and Replace 做数据标准化
想在你的 prospect lists 上做分群/细分,数据标准化是必经之路。
- 标准化 job titles
- 标准化国家、城市
- 标准化 URL
- 等等
你的目标通常是:把“自由输入”的字段收敛成少量可控的选项;或者把文本转换成更基础、更统一的版本(比如把带路径的 URL 变成只有 domain 的 URL)。
Datablist 提供了强大的 Find and Replace 工具,既支持普通文本,也支持正则表达式(regular expressions)。
正则表达式很难,但也非常强。
下面是几个用 RegEx 清洗数据的例子。
从 URL 中移除 query 参数
抓到的 URL 经常带着用于 tracking/marketing 的 query 参数。把它们移除后,你会得到更干净的 URL,也更利于用 URL 来做去重(用 URL 来查找重复数据)。
要移除 URL 的 query 参数,勾选 “Match using regular expression”,然后用下面的正则表达式,并把 replacement 留空:
\?.*$
然后应用到你的 URL 字段上。
从 Email Addresses 提取域名
Find and Replace + 正则的另一个典型用法:从 email 地址里提取网站域名。
建议先复制一列 email 字段,保留原始数据。然后使用下面的正则表达式,并把 replacement 留空:
^(\w)*@
将 Full Name 拆分为 First Name 和 Last Name
抓取 lead lists 时,你经常只拿到一个 “Full Name”,但你需要把它拆成 “First Name” 和 “Last Name”。能准确解析姓名结构,是后续所有个性化动作的关键一步。
把 first name 和 last name 分开后,你可以在 cold emailing 里更自然地称呼对方,也更方便你判断性别、提取学术头衔等信息。
姓名拆分并不总是简单,但 Datablist 提供了一个易用工具:用空格作为分隔符,把 “Name” 拆成两个值。
开始前,在 “Edit” 菜单打开 “Split Property”。
然后选择要解析的姓名字段。分隔符选择 Space,并把最大分段数设为 2。
运行 preview。Datablist 会对前 10 条数据做解析并生成预览。如果结果满意,点击 “Split Property” 把算法应用到当前所有数据。
拆分完成后,把新生成的两个字段重命名为 “First Name” 和 “Last Name”。
这个示例主要针对西方姓名习惯(通常由 first name + last name 组成)。如果遇到非西方姓名、多个名/多个姓、或带称谓/后缀的情况,解析会更复杂一些。
数据去重
Datablist 有一个很强的 deduplication 算法,可以用来去重记录。它可以基于一个或多个字段寻找相似项,并提供自动合并策略,在不丢数据的前提下完成 merge。
要运行去重算法,在 “Clean” 菜单点击 “Duplicate Finder”。
选择用于匹配的字段。
在结果页,建议先运行一次 “Auto Merge”,并只勾选 “Merge non-conflicting duplicates”。这会先合并那些“无冲突、容易合并”的重复项,同时列出存在冲突的字段。
这个 dedupe algorithm 还提供两种处理冲突数据的方式:你可以选择用分隔符 “Combine conflicting properties”,把冲突值拼接保留;或者丢弃冲突值,只保留一个 master item。
验证 Email Addresses
抓取数据可能过期、可能有拼写错误,也可能根本无效。 尤其是 scraping 得到的 email 地址,这个问题非常常见。
当数据来自用户生成内容时,你还会遇到假邮箱,或者来自一次性(disposable)邮箱服务商的地址。
Datablist 内置 email validation 工具,可以让你一次验证成千上万条 email。
Email validation 服务包括:
- Email syntax analysis - 第一层检查是确认 email 符合 IEFT 标准,并做完整语法分析。比如缺少 @、domain 不合法等都会被标记。
- Disposable providers check - 第二层检查用于识别临时邮箱。服务会检测是否属于 Disposable Email Address (DEA) 供应商域名,例如 Mailinator、Temp-Mail、YopMail 等。
- Domain MX records check - 有效的 email 地址,其域名必须配置 MX records。MX records 指定该域接受邮件的服务器。缺失 MX records 通常意味着该 email 无效。 对每个 email domain,服务会检查 DNS 记录并寻找 MX 记录。如果域名不存在,email 会被标记为无效;如果域名存在但没有有效 MX 记录,也会被标记为无效。
- Business and Personal Email addresses Segmentation - 当你需要对来自 lead magnet 的 prospects 做分层,或对用户进行细分时,往往要区分 business email 和 personal email。Email validation 会输出这类信息,用于 enrichment。
从抓取文本中提取人名或公司名
当你从网站或其他来源抓取大段文本时,很多时候你会想直接提取其中的人名或公司名。这类信息可以用于多种场景,比如 lead generation、竞品分析等。但从非结构化文本里提取名字并不容易:名字形式非常多样,且常常嵌在更长的句子或段落里。
姓名/机构名提取的难点之一,是不同文化与语言存在大量命名习惯差异。比如有些文化是姓在前名在后,有些相反;有些人有多个名或多个姓;此外,名字还可能拼写错误、被缩写、或以不标准的形式出现,这都会让简单的规则匹配失效。
一个常见方法是 Named Entity Recognition(NER),它是一种 NLP 技术,用来识别并分类文本中的命名实体。NER 模型可以被训练来识别人名、组织、地点等实体,也能针对不同命名习惯做定制。
Datablist 内置了强大的 “Named Entity Recognition”(NER)模型,你可以直接对文本运行。它支持阿拉伯语、德语、英语、西班牙语、法语、意大利语、拉脱维亚语、荷兰语、葡萄牙语以及中文。
在 “Enrichments” 菜单里选择 “Entity name extraction”。
然后在 input 里选择你要提取名字的文本字段。
在 outputs 部分,为每一种你想提取的名称类型点击 “Create a new property”。
Datablist Entity Name extractor 会提取:
- Organization Name:例如公司名称
- Person Name:完整姓名或 First Name/Last Name
- Location:城市、国家和地点
然后运行 enrichment。
需要帮你处理数据清洗吗?
我一直在收集真实反馈和新的数据清洗难题,方便持续改进。欢迎你联系我分享你的 use case。





































