Cách tách mọi địa chỉ email và liên kết từ văn bản lộn xộn
Để lấy ra mọi địa chỉ email từ một trang hoặc tệp xuất dữ liệu lộn xộn, hãy dùng một mẫu khớp với hình dạng của địa chỉ, rồi dọn các dấu câu nằm sát bên cạnh. Mẫu đơn giản sẽ lấy cả dấu chấm hoặc dấu phẩy ở cuối câu, và bỏ sót những địa chỉ được viết theo cách làm mờ. Bạn nên kiểm tra lại danh sách bằng mắt trước khi dùng.
Trích email và liên kếtLấy email từ một trang webDùng miễn phíVì sao mẫu đơn giản hay sai
Một mẫu thường gặp là chuỗi ký tự không chứa khoảng trắng, theo sau là dấu @, rồi lại một chuỗi ký tự không chứa khoảng trắng. Mẫu này dễ viết, nhưng có hai lỗi.
Nó khớp quá nhiều. Trong câu "Liên hệ [email protected], hoặc [email protected]." thì mẫu "\S+@\S+" sẽ trả về "[email protected]," có dấu phẩy và "[email protected]." có dấu chấm. Đây không phải địa chỉ hợp lệ, và khi gửi thư hàng loạt hoặc qua bộ lọc thư rác, chúng sẽ bị từ chối.
Nó lại khớp quá ít. Những địa chỉ viết dạng "ana [at] example [dot] com" hoặc "ana at example dot com" thì không được nhận ra. Người viết dùng cách này để tránh bị thu thập tự động, và một số trang cũng làm vậy vì lý do tương tự. Hãy thay các từ đó trước, rồi mới tách.
Một mẫu tốt hơn chỉ cho phép các ký tự mà địa chỉ có thể chứa ở phần trước dấu @, và chỉ cho phần tên miền dạng chữ cái ở phía sau. Mẫu "[\w.+-]+@[\w-]+\.[\w.-]+" là một điểm khởi đầu hợp lý. Dù vậy, nó vẫn có thể giữ lại dấu chấm sau tên miền khi địa chỉ nằm cuối câu, vì phần cuối của tên miền cho phép có dấu chấm. Hãy bỏ một dấu chấm thừa ở cuối mỗi kết quả. Công cụ tách email và liên kết đã tự loại bỏ dấu câu ở cuối, nên bước này chủ yếu quan trọng khi bạn tự viết mẫu riêng.
Đây là kết quả của mẫu trên với hai ví dụ phía trên:
- "Gửi thư đến [email protected]." cho ra "[email protected]." có dấu chấm cuối, cần phải bỏ đi.
- "Liên hệ [email protected], hoặc [email protected]." cho ra "[email protected]" và "[email protected].", nên cũng cần dọn tương tự.
Liên kết cũng vậy
URL gặp cùng vấn đề. Liên kết nằm cuối câu thường kèm dấu chấm, dấu phẩy hoặc dấu ngoặc đóng. Liên kết nằm trong ngoặc, chẳng hạn (xem https://example.com/page), có thể lấy luôn dấu ngoặc đóng nếu mẫu tham lam. Hãy dọn dấu câu thừa, rồi kiểm tra xem từng liên kết có mở được trên trình duyệt không.
Liên kết cũng có thể là dạng tương đối, như /contact, và phần tách địa chỉ email sẽ bỏ qua chúng. Hãy quyết định xem bạn chỉ cần địa chỉ tuyệt đối hay không, và ghi rõ điều đó khi chạy việc tách.
Các bước hiệu quả với hầu hết tệp xuất dữ liệu
- Thay các dạng bị làm mờ trước, bằng tìm và thay thế văn bản: "[at]" thành @ và "[dot]" thành dấu chấm, nhưng chỉ ở những chỗ bạn thấy rõ đó là địa chỉ.
- Dán văn bản, hoặc mã nguồn HTML của trang, vào ô Văn bản hoặc HTML trong công cụ tách. Địa chỉ và liên kết sẽ được lấy ra, và dấu câu thừa ở cuối sẽ bị loại bỏ.
- Giữ tùy chọn Xóa trùng lặp được chọn. Công cụ sẽ bỏ qua chữ hoa trong địa chỉ email, nên [email protected] và [email protected] chỉ được tính một lần. Với danh sách có sẵn, xóa dòng trùng lặp cho kết quả tương tự.
- Chọn Sắp xếp A→Z nếu bạn muốn danh sách theo thứ tự.
- Đọc lại danh sách cuối cùng. Tìm những giá trị không phải địa chỉ, chẳng hạn tên tệp ảnh tình cờ có dấu @.
Ví dụ minh họa: một trang có "Bán hàng: [email protected]", "[email protected]." và "Hỗ trợ: [email protected]". Việc tách trả về ba kết quả. Sau khi bỏ dấu chấm và xóa trùng lặp không phân biệt chữ hoa, chỉ còn hai địa chỉ: [email protected] và [email protected]. Nếu muốn danh sách có thứ tự, hãy chọn Sắp xếp A→Z trong công cụ tách, hoặc dùng sắp xếp dòng.
Giữ danh sách sạch và đúng luật
Ở nhiều nơi, địa chỉ email là dữ liệu cá nhân, và nhiều quốc gia có luật chống thư rác. Việc thu thập một địa chỉ từ trang công khai không tự động cho phép bạn gửi email đến địa chỉ đó. Quy định như GDPR của EU và CAN-SPAM Act của Mỹ là hai ví dụ nổi tiếng, và chúng khác nhau ở những yêu cầu cụ thể. Đây chỉ là thông tin chung, không phải tư vấn pháp lý. Trước khi gửi bất cứ thứ gì, hãy kiểm tra các quy định áp dụng cho bạn và cho những người trong danh sách, và luôn có tùy chọn hủy đăng ký đối với thư gửi hàng loạt.
Các trường hợp đặc biệt
- Văn bản không phải địa chỉ. Những chuỗi như [email protected] có thể bị khớp. Hãy xóa mọi thứ kết thúc bằng đuôi tệp.
- Địa chỉ nằm trong hình ảnh. Hãy đọc ảnh chụp màn hình bằng công cụ chuyển ảnh thành chữ trước, rồi tách từ kết quả. Hướng dẫn ảnh chụp màn hình và ảnh giải thích cách có được văn bản đọc sạch.
- Ký tự ẩn. Một khoảng trắng không độ rộng nằm trong địa chỉ sẽ làm hỏng việc khớp, khiến địa chỉ bị bỏ sót. Nếu thiếu một địa chỉ đã biết, hãy xóa ký tự ẩn trước khi tách. Hướng dẫn ký tự ẩn giải thích chúng xuất hiện từ đâu.
- Địa chỉ được mã hóa. Một số trang giấu địa chỉ trong thực thể HTML như @ thay cho @. Hãy giải mã văn bản trang trước, nếu không mẫu sẽ không nhìn thấy dấu @.
- Tệp xuất dữ liệu lớn. Với tệp lớn, hãy tách ra một tệp và đối chiếu số lượng với số dòng bạn mong đợi.
Câu hỏi nhanh
Vì sao kết quả tách email của tôi có dấu chấm ở cuối?
Dấu chấm được phép nằm trong tên miền, nên một mẫu chấp nhận dấu chấm có thể bắt nhầm dấu chấm kết thúc câu. Hãy bỏ một dấu chấm thừa ở cuối mỗi kết quả.
Công cụ có tìm được địa chỉ viết dạng "tên at example dot com" không?
Không đáng tin nếu không có bước thay thế. Hãy đổi các từ thành ký hiệu trước, nhưng chỉ ở những chỗ văn bản rõ ràng là địa chỉ, để các câu thông thường không bị thay đổi.
Gửi email cho mọi địa chỉ tôi tách từ trang web có hợp pháp không?
Điều đó phụ thuộc vào nơi bạn và người nhận đang ở, và nội dung thư là gì. Luật chống thư rác và bảo mật thông tin cá nhân đều có thể áp dụng, nên hãy kiểm tra trước. Đây chỉ là thông tin chung, không phải tư vấn pháp lý.
Được dịch từ Bản tiếng Anh với sự hỗ trợ của AI.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.


