Trick Pro đã thay màu áo mới!

Share code trích xuất URL từ sitemap

Share code trích xuất URL từ sitemap

Hello! Lại là 1 chuyên mục share code tiếp đây. Lâu lắm mình chưa share code cho anh em. Chắc hẳn anh em đang hóng code tiếp theo mình share là gì đúng không? Hic, nay mình đi dọn lại và soạn lại đống code thì mình tìm được 1 công cụ khá thú vị. Mặc dù công cụ này cũng chả cần nhưng mình vẫn quyết định tiếp tục share. Hôm nay mình sẽ Share code trích xuất URL từ sitemap. Cái này dành cho những ai rảnh rỗi thì ném link sitemap vào nhìn nó hoạt động chạy.

Share code trích xuất URL từ sitemap
Share code trích xuất URL từ sitemap

Giới thiệu

Code này mình không nhớ rõ lấy code từ bên nào. Tool này dùng để muốn trích xuất url từ file xml nào đó, nó tự động nhận diện url để lấy. Ví dụ mình thấy trang nào đó copy toàn bộ nội dung bên mình thì mình có thể dùng code này trích xuất url để báo cáo thay vì phải ngồi máy click chuột vào từng link để copy trông rất mệt. Hoặc anh em nào muốn share url thì cũng dùng tool này để trích xuất url trang blog của mình ra. Tool này có cả tính năng tải file excel CGV sau khi trích xuất. Nếu anh em dùng thì phải dùng cái link sitamap đúng chuẩn phải là có đuôi .xml nó mới trích xuất được. Mình share tool này free không mất đồng xu nào. Nên anh em có lấy về nhớ ghi nguồn. Tool này ngày nay chắc không ai dùng để vì có con Chat Box AI nhờ nó trích xuất ra cũng được. Để hoạt động anh em chỉ cần copy link sitemap vô nó trích xuất khải mất công copy nguyên cái xml vào con AI để tách.

Code trích xuất URL từ sitemap

Dưới đây là code trích xuất URL từ sitemap, các bạn chỉ cần copy vào bất cứ đâu trong mã html trang web là được đừng có mà dán nhầm code html vào luôn code của css

Đây là code

HTML
<style>
        :root {
            --primary-trickpro: #007bff;
            --bg-trickpro: #f4f4f9;
            --text-trickpro: #333;
        }

        .container-trickpro {
            background: white;
            width: 100%;
            max-width: 700px;
            padding: 30px;
            border-radius: 12px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.1);
        }

        .input-group-trickpro {
            margin-bottom: 20px;
            padding: 15px;
            border: 1px dashed #ccc;
            border-radius: 8px;
        }
        label { font-weight: bold; display: block; margin-bottom: 8px; }
        input[type="text"], input[type="file"] {
            width: 100%;
            padding: 10px;
            box-sizing: border-box;
            border: 1px solid #ddd;
            border-radius: 6px;
        }
        .btn-trickpro {
            background-color: var(--primary-trickpro);
            color: white;
            border: none;
            padding: 12px 20px;
            border-radius: 6px;
            cursor: pointer;
            width: 100%;
            font-size: 16px;
            transition: background 0.3s;
        }
        .btn-trickpro:hover { background-color: #0056b3; }
        
        textarea {
            width: 100%;
            height: 200px;
            margin-top: 20px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 6px;
            font-family: monospace;
            box-sizing: border-box;
        }
        
        .actions-trickpro {
            display: flex;
            gap: 10px;
            margin-top: 10px;
        }
        .btn-secondary-trickpro {
            background-color: #6c757d;
            flex: 1;
        }
        .status-trickpro {
            margin-top: 10px;
            font-size: 0.9em;
            color: #666;
            text-align: center;
        }
    </style> <div class="container-trickpro">
    <h2>URL Extractor Tool</h2>
    
    <div class="input-group-trickpro">
        <label>Cách 1: Chọn file từ máy tính (.xml, .txt)</label>
        <input type="file" id="file_input_trickpro" accept=".xml,.txt,.html">
    </div>

    <div class="input-group-trickpro">
        <label>Cách 2: Nhập Link Sitemap Online</label>
        <input type="text" id="url_input_trickpro" placeholder="https://example.com/sitemap.xml">
        <small style="color: red; display:block; margin-top:5px;">* Lưu ý: Nếu web chặn CORS, hãy tải file về và dùng Cách 1.</small>
    </div>

    <button class="btn-trickpro" onclick="start_extract_trickpro()">Trích xuất Link</button>

    <div class="status-trickpro" id="status_msg_trickpro">Sẵn sàng...</div>

    <textarea id="output_area_trickpro" placeholder="Kết quả sẽ hiện ở đây..."></textarea>

    <div class="actions-trickpro">
        <button class="btn-trickpro btn-secondary-trickpro" onclick="copy_result_trickpro()">Copy Kết Quả</button>
        <button class="btn-trickpro btn-secondary-trickpro" onclick="download_result_trickpro()">Tải về .txt</button>
    </div>
</div>

<script>
    // Hàm chính để điều phối việc trích xuất
    async function start_extract_trickpro() {
        const file_input_trickpro = document.getElementById('file_input_trickpro');
        const url_input_trickpro = document.getElementById('url_input_trickpro');
        const output_area_trickpro = document.getElementById('output_area_trickpro');
        const status_msg_trickpro = document.getElementById('status_msg_trickpro');

        output_area_trickpro.value = "";
        status_msg_trickpro.innerText = "Đang xử lý...";

        let raw_content_trickpro = "";

        try {
            // Ưu tiên xử lý File Upload trước
            if (file_input_trickpro.files.length > 0) {
                const file_trickpro = file_input_trickpro.files[0];
                raw_content_trickpro = await read_file_trickpro(file_trickpro);
            } 
            // Nếu không có file, kiểm tra URL input
            else if (url_input_trickpro.value.trim() !== "") {
                const target_url_trickpro = url_input_trickpro.value.trim();
                // Sử dụng proxy để tránh lỗi CORS (chỉ dùng cho demo, production nên có backend)
                // Ở đây mình fetch trực tiếp, nếu lỗi sẽ báo.
                const response_trickpro = await fetch(target_url_trickpro);
                if (!response_trickpro.ok) throw new Error("Không thể tải URL (Lỗi HTTP hoặc CORS).");
                raw_content_trickpro = await response_trickpro.text();
            } else {
                alert("Vui lòng chọn file hoặc nhập URL!");
                status_msg_trickpro.innerText = "Chưa có dữ liệu đầu vào.";
                return;
            }

            // Tiến hành lọc link
            const links_list_trickpro = parse_content_trickpro(raw_content_trickpro);
            
            if (links_list_trickpro.length > 0) {
                output_area_trickpro.value = links_list_trickpro.join('\n');
                status_msg_trickpro.innerText = `Thành công! Tìm thấy ${links_list_trickpro.length} liên kết.`;
            } else {
                status_msg_trickpro.innerText = "Không tìm thấy URL nào hợp lệ.";
            }

        } catch (error_trickpro) {
            console.error(error_trickpro);
            status_msg_trickpro.innerText = "Lỗi: " + error_trickpro.message;
            alert("Lỗi: Kiểm tra lại file hoặc URL (có thể bị chặn CORS).");
        }
    }

    // Hàm đọc file từ máy tính
    function read_file_trickpro(file_obj_trickpro) {
        return new Promise((resolve_trickpro, reject_trickpro) => {
            const reader_trickpro = new FileReader();
            reader_trickpro.onload = (e) => resolve_trickpro(e.target.result);
            reader_trickpro.onerror = (e) => reject_trickpro(e);
            reader_trickpro.readAsText(file_obj_trickpro);
        });
    }

    // Hàm Phân tích nội dung (Logic trích xuất)
    function parse_content_trickpro(content_text_trickpro) {
        let results_trickpro = [];

        // Cách 1: Thử phân tích theo chuẩn XML Sitemap (<loc>...</loc>)
        try {
            const parser_trickpro = new DOMParser();
            const xmlDoc_trickpro = parser_trickpro.parseFromString(content_text_trickpro, "text/xml");
            const loc_tags_trickpro = xmlDoc_trickpro.getElementsByTagName("loc");
            
            if (loc_tags_trickpro.length > 0) {
                for (let i = 0; i < loc_tags_trickpro.length; i++) {
                    results_trickpro.push(loc_tags_trickpro[i].textContent.trim());
                }
                return results_trickpro; // Nếu tìm thấy thẻ loc thì trả về luôn
            }
        } catch (e) {
            console.log("Không phải XML chuẩn, chuyển sang Regex.");
        }

        // Cách 2: Nếu không phải XML chuẩn, dùng Regex quét toàn bộ link http/https
        // Regex tìm các chuỗi bắt đầu bằng http:// hoặc https://
        const regex_trickpro = /(https?:\/\/[^\s<>"']+)/g;
        const matches_trickpro = content_text_trickpro.match(regex_trickpro);

        if (matches_trickpro) {
            // Lọc trùng lặp
            results_trickpro = [...new Set(matches_trickpro)];
        }

        return results_trickpro;
    }

    // Hàm Copy kết quả
    function copy_result_trickpro() {
        const output_trickpro = document.getElementById('output_area_trickpro');
        output_trickpro.select();
        document.execCommand('copy');
        alert("Đã copy danh sách link!");
    }

    // Hàm Tải file kết quả
    function download_result_trickpro() {
        const text_content_trickpro = document.getElementById('output_area_trickpro').value;
        if (!text_content_trickpro) return;

        const blob_trickpro = new Blob([text_content_trickpro], { type: "text/plain" });
        const anchor_trickpro = document.createElement("a");
        anchor_trickpro.href = URL.createObjectURL(blob_trickpro);
        anchor_trickpro.download = "extracted_links_trickpro.txt";
        anchor_trickpro.click();
    }
</script>

Demo:

URL Extractor Tool

* Lưu ý: Nếu web chặn CORS, hãy tải file về và dùng Cách 1.
Sẵn sàng...

Lời kết

Trên đây là mình Share code trích xuất URL từ sitemap. Chúc các bạn một ngày học tập và làm việc thật hiệu quả. Xin chào và hẹn gặp lại!

Copyright © Trick Pro

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.