뒤죽박죽 텍스트에서 이메일 주소와 링크를 모두 뽑는 방법
뒤죽박죽인 페이지나 내보내기 파일에서 이메일 주소를 모두 뽑으려면, 주소 모양과 맞는 패턴을 쓴 다음 주소 옆에 붙은 문장부호를 정리하세요. 단순한 패턴은 문장 끝의 마침표나 쉼표까지 가져가고, 난독화된 방식으로 적힌 주소는 놓쳐요. 목록을 사용하기 전에 눈으로 한 번 확인하는 것이 좋아요.
이메일 주소와 링크 추출페이지에서 이메일 주소 뽑기무료로 사용하기단순한 패턴이 틀리는 이유
흔히 쓰는 패턴은 공백이 아닌 문자들, @ 기호, 다시 공백이 아닌 문자들이 이어지는 형태예요. 쓰기는 쉽지만 두 가지 문제가 있어요.
먼저 너무 많이 잡아요. "Contact [email protected], or [email protected]." 문장에서 "\S+@\S+" 패턴은 "[email protected],"와 마침표가 붙은 "[email protected]."를 반환해요. 이것들은 목록에 들어가야 할 올바른 주소가 아니고, 메일 병합이나 스팸 필터에서 거부당할 수 있어요.
반대로 너무 적게 잡기도 해요. "ana [at] example [dot] com"이나 "ana at example dot com"처럼 적힌 주소는 아예 잡히지 않아요. 수집을 피하려고 이런 형식으로 쓰는 경우가 많고, 일부 페이지는 같은 이유로 이렇게 표기하기도 해요. 그러니 먼저 단어를 바꾼 뒤에 추출하세요.
더 나은 패턴은 왼쪽에는 주소에 들어갈 수 있는 문자만, 오른쪽에는 문자 기반의 도메인만 허용해요. "[\w.+-]+@[\w-]+\.[\w.-]+" 패턴이 무난한 출발점이에요. 다만 도메인 마지막 부분에 점을 허용하기 때문에, 주소가 문장 끝에 오면 도메인 뒤의 마침표가 남을 수 있어요. 각 결과에서 끝의 마침표 하나를 떼어 내세요. 이메일과 링크 추출 도구는 끝에 붙은 문장부호를 이미 제거하므로, 이 단계는 직접 패턴을 작성할 때 특히 중요해요.
위 두 예시에 이 패턴을 적용하면 다음과 같이 나와요.
- "Write to [email protected]."은 "[email protected]."을 반환하므로 끝의 마침표를 지워야 해요.
- "Contact [email protected], or [email protected]."은 "[email protected]"와 "[email protected]."를 반환하므로 같은 정리가 필요해요.
링크도 같은 방식으로 다뤄요
URL에도 같은 문제가 있어요. 문장 끝의 링크에는 마침표, 쉼표, 닫는 괄호가 붙는 경우가 많아요. (see https://example.com/page)처럼 괄호 안에 있는 링크는 패턴이 탐욕적으로 작동하면 닫는 괄호까지 가져가요. 끝의 문장부호를 정리한 다음, 각 링크가 브라우저에서 열리는지 확인하세요.
링크는 /contact처럼 상대 경로일 수도 있어요. 이메일 주소를 추출하는 과정에서는 이런 경로를 무시해요. 절대 주소만 필요한지 먼저 정하고, 추출할 때 그 조건을 분명히 해 두세요.
대부분의 내보내기 파일에 맞는 단계
- 난독화된 표기를 먼저 찾아 바꾸기로 고치세요. "[at]"은 @로, "[dot]"은 마침표로 바꾸되, 주소라는 것이 분명한 곳에서만 바꾸세요.
- 텍스트나 페이지의 HTML 소스를 추출 도구의 텍스트 또는 HTML 칸에 붙여 넣으세요. 주소와 링크가 골라지고, 끝의 문장부호는 제거돼요.
- 중복 제거를 켜 두세요. 이메일 주소의 대소문자는 무시하므로 [email protected]과 [email protected]은 한 번만 세어져요. 이미 가진 목록이라면 중복 줄 제거로 같은 작업을 할 수 있어요.
- 목록을 순서대로 보고 싶다면 오름차순 정렬(A→Z)을 켜세요.
- 최종 목록을 훑어보세요. @ 기호가 들어 있지만 실제로는 주소가 아닌 이미지 파일 이름 같은 값이 있는지 확인하세요.
예를 들어 페이지에 "Sales: [email protected]", "[email protected].", "Support: [email protected]"이 있다고 해 볼게요. 추출하면 3개가 나와요. 끝의 마침표를 떼고 대소문자를 무시하고 중복을 제거하면, [email protected]과 [email protected] 두 개만 남아요. 목록을 순서대로 보고 싶다면 추출 도구에서 오름차순 정렬(A→Z)을 켜거나 줄 정렬을 사용하세요.
목록을 깔끔하고 합법적으로 관리하기
이메일 주소는 많은 곳에서 개인정보에 해당하고, 여러 나라에 스팸 방지 규정이 있어요. 공개된 페이지에서 주소를 모았다고 해서 그 주소로 메일을 보낼 수 있는 것은 아니에요. EU의 GDPR과 미국의 CAN-SPAM Act가 잘 알려진 예인데, 두 규정이 요구하는 내용은 서로 달라요. 이 글은 일반적인 정보이며 법률 자문이 아니에요. 무언가를 보내기 전에 본인과 목록에 있는 사람들에게 적용되는 규정을 확인하고, 대량 메시지에는 수신 거부 옵션을 꼭 넣으세요.
예외 상황
- 주소가 아닌 텍스트. [email protected] 같은 문자열도 잡힐 수 있어요. 파일 확장자로 끝나는 것은 제거하세요.
- 그림 속 주소. 먼저 이미지 텍스트 추출 도구로 스크린샷을 읽은 뒤, 그 결과에서 추출하세요. 스크린샷과 사진 가이드에서 깨끗하게 읽는 방법을 설명해요.
- 숨은 문자. 주소 중간에 있는 너비 없는 공백은 패턴을 끊어서 주소를 놓치게 만들어요. 알고 있는 주소가 빠졌다면 추출 전에 숨은 문자 제거를 실행하세요. 숨은 문자 가이드에서 이런 문자가 어디서 생기는지 설명해요.
- 인코딩된 주소. 일부 페이지는 @처럼 HTML 문자 참조로 @를 감춰요. 패턴이 @ 기호를 보지 못하니 페이지 텍스트를 먼저 디코딩하세요.
- 긴 내보내기 파일. 큰 파일은 결과를 파일로 추출한 다음, 예상한 줄 수와 개수를 비교해 보세요.
자주 묻는 질문
이메일 추출 결과 끝에 마침표가 붙는 이유는 무엇인가요?
도메인 안에는 마침표가 허용되기 때문에, 점을 허용하는 패턴은 문장 끝의 마침표까지 잡을 수 있어요. 각 결과에서 끝의 마침표 하나를 떼어 내세요.
"name at example dot com"처럼 적힌 주소도 도구로 찾을 수 있나요?
치환 단계 없이는 안정적으로 찾기 어려워요. 먼저 단어를 기호로 바꾸되, 주소인 것이 분명한 곳에서만 바꿔서 일반 문장이 바뀌지 않게 하세요.
웹페이지에서 추출한 모든 주소에 메일을 보내도 법적으로 괜찮나요?
본인과 받는 사람이 어디에 있는지, 메시지가 무엇인지에 따라 달라요. 스팸 방지 및 개인정보 규정이 적용되니 먼저 확인하세요. 이 답변은 일반적인 정보이며 법률 자문이 아니에요.
AI 도움을 받아 영어 원문에서 번역했어요.
댓글
아직 댓글이 없어요. 첫 댓글을 남겨 보세요.


