Bắt đầu với Robots.txt và Sitemaps để thu thập dữ liệu web

Hướng dẫn ,13-11-20245 phút đọc

Trong bối cảnh kỹ thuật số rộng lớn, nơi vô số trang web cạnh tranh để thu hút sự chú ý, việc hiểu các quy tắc tương tác là rất quan trọng. Đối với các nhà phát triển web, chuyên gia SEO và người tạo nội dung, giải mã robots.txt là chìa khóa để thu thập dữ liệu web có đạo đức và hiệu quả. Hướng dẫn này sẽ giúp bạn hiểu cách tương tác có trách nhiệm với các trang web bằng robots.txt và sơ đồ trang web.

Hiểu về vai trò của Robots.txt trong việc thu thập dữ liệu web

Thu thập dữ liệu web là cốt lõi của cách các công cụ tìm kiếm khám phá và lập chỉ mục nội dung trên internet. Các trang web sử dụng tệp robots.txt làm công cụ chính để quản lý và kiểm soát hành vi thu thập dữ liệu này. Các tệp này đóng vai trò là một tập hợp các hướng dẫn cho các rô-bốt web, bao gồm cả các bot của công cụ tìm kiếm, hướng dẫn chúng về nội dung nào cần truy cập hoặc bỏ qua.

Mục đích của robots.txt là hai mặt. Nó giúp chủ sở hữu trang web bảo vệ thông tin nhạy cảm và tối ưu hóa hiệu suất máy chủ, đồng thời cung cấp một khuôn khổ cho việc thu thập dữ liệu web có đạo đức.

Hiểu về Robots.txt 

Để minh họa cách robots.txt hoạt động, hãy xem xét ví dụ về trang web này . Một tệp robots.txt thông thường bao gồm các chỉ thị như User-agent, Disallow và Allow.

  • User-agent chỉ định bot nào phải tuân theo các quy tắc. Ví dụ: "User-agent: *" áp dụng cho tất cả các bot.
  • Không cho phép sẽ ngăn chặn bot truy cập vào các khu vực cụ thể, chẳng hạn như phần quản trị hoặc thư mục riêng tư.
  • Cho phép cấp quyền truy cập vào các tài nguyên cụ thể, đảm bảo các tệp động cần thiết cho chức năng của trang web có thể truy cập được.

Trên trang web này, robots.txt tập tin xuất hiện như sau:

  • Như bạn có thể thấy trang web này Không cho phép truy cập đến các đường dẫn URL này:
    • /wp-content/uploads/wc-logs/
    • /wp-content/uploads/woocommerce_transient_files/
    • /wp-content/uploads/woocommerce_uploads/
    • /wp-admin/ (Khu vực quản trị WordPress)
  • Cho phép truy cập cụ thể là /wp-admin/admin-ajax.php, cho phép trình thu thập thông tin tiếp cận tệp này để có chức năng AJAX cần thiết.
  • Khối Yoast SEO:
    • Dòng Không cho phép: trống, nghĩa là không có hạn chế bổ sung nào được khối này thêm vào.
    • Sơ đồ trang web được cung cấp: https://daystate.com/sitemap_index.xml, giúp các công cụ tìm kiếm xác định tất cả các URL quan trọng để lập chỉ mục.

Sơ đồ trang web là gì?

Sitemap là thành phần quan trọng của một trang web, liệt kê tất cả các URL quan trọng. Nó hoạt động như một lộ trình cho các công cụ tìm kiếm, cho phép chúng nhanh chóng khám phá và lập chỉ mục nội dung mới hoặc đã cập nhật.

Đối với chủ sở hữu trang web, sơ đồ trang web vô cùng hữu ích. Chúng đảm bảo rằng tất cả các trang có liên quan đều hiển thị với các công cụ tìm kiếm, tạo điều kiện lập chỉ mục và xếp hạng tốt hơn. Lợi ích của sơ đồ trang web không chỉ giới hạn ở SEO, mà còn hỗ trợ trải nghiệm người dùng bằng cách đảm bảo nội dung dễ dàng được khám phá.

https://daystate.com/robots.txt tệp robots.txt bao gồm liên kết đến sơ đồ trang web, cung cấp đường dẫn có cấu trúc để các công cụ tìm kiếm theo dõi. Liên kết này rất cần thiết để thu thập và lập chỉ mục nội dung của trang web một cách hiệu quả.

Sau đây là sơ đồ trang web của daystate :

Ví dụ, chúng ta hãy tiếp tục và nhấp vào " https://daystate.com/product-sitemap.xml "

Như bạn thấy, chúng ta có thể thấy tất cả các URL cho "Sản phẩm" trong trường hợp này. Dưới đây là một tập lệnh Python được thiết kế để thu thập từng sản phẩm. Nó bắt đầu bằng cách phân tích trang XML của sản phẩm để trích xuất tất cả các URL sản phẩm, sau đó lặp lại qua từng URL để trích xuất tiêu đề và giá sản phẩm.

import re

import requests
from bs4 import BeautifulSoup


def fetch_xml_sitemap(sitemap_url) -> str:

    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
    }

    response = requests.get(sitemap_url, headers=headers)
    response.raise_for_status()  # Check for request errors

    return response.content


def extract_endpoints(response_content):
    output_endpoints = []

    soup = BeautifulSoup(response_content, "xml")
    # Loop through each product entry in the sitemap
    for url in soup.find_all("url"):
        # Extract link, last modified date, and image (if available)
        endpoint = url.find("loc").text if url.find("loc") else None
        if endpoint is not None:
            output_endpoints.append(endpoint)

    return output_endpoints

def extract_product_info(product_url):
    headers = {
        "User-Agent": "input_user_agent"}

    proxy = {
        "http": "http://username:[email protected]:6060",
        "https": "http://username:[email protected]:6060"
    }

    response = requests.get(product_url, headers=headers, proxies=proxy)

    soup = BeautifulSoup(response.content, "html.parser")

    pattern = re.compile(r"^product-\d+$")
    try:
        product_div = soup.find("div", id=pattern)
        product_title = product_div.find("h1", {"class":"product_title entry-title"}).text
        product_price = product_div.find("bdi").text
        return product_title, product_price
    except:
        print("Error Extracting Product Information")
        return None, None

if __name__ == '__main__':
    url_sitemap = "https://daystate.com/product-sitemap.xml"

    sitemap_xml = fetch_xml_sitemap(url_sitemap)

    sitemap_urls = extract_endpoints(sitemap_xml)

    for url in sitemap_urls:
        print(extract_product_info(url))

Tại sao cả hai tệp đều quan trọng đối với SEO và Web Scraping

Tệp robots.txt và sơ đồ trang web cùng nhau tạo thành xương sống của SEO và các hoạt động thu thập dữ liệu web có đạo đức. Robots.txt hướng dẫn trình thu thập dữ liệu web về các khu vực được phép, bảo vệ dữ liệu nhạy cảm và giảm tải máy chủ. Trong khi đó, sơ đồ trang web thúc đẩy việc khám phá nội dung của các công cụ tìm kiếm, đảm bảo các trang mới được lập chỉ mục kịp thời.

Đối với web scraper, việc tôn trọng các tệp này là tối quan trọng. Việc bỏ qua các chỉ thị robots.txt có thể dẫn đến hình phạt, làm tổn hại đến cả danh tiếng và thứ hạng của công cụ tìm kiếm. Các scraper đạo đức tuân theo các hướng dẫn này, thúc đẩy một môi trường kỹ thuật số tôn trọng.

Phần kết luận

Robots.txt tệp và sơ đồ trang web là những công cụ không thể thiếu trong quá trình thu thập dữ liệu web. Chúng cung cấp phương pháp tiếp cận có cấu trúc để quản lý quyền truy cập và lập chỉ mục trang web, mang lại lợi ích cho cả chủ sở hữu trang web và trình thu thập dữ liệu web.
Bằng cách hiểu và tôn trọng các yếu tố này, bạn có thể tối ưu hóa các chiến lược kỹ thuật số, tăng cường SEO và tham gia vào các hoạt động thu thập dữ liệu web có đạo đức. Hãy nhớ rằng, việc sử dụng có trách nhiệm duy trì sự cân bằng của hệ sinh thái web, đảm bảo trải nghiệm tích cực cho tất cả các bên liên quan.