темный логотип proxyscrape

Начало работы с Robots.txt и картами сайта для веб-скрапинга

Путеводители, Ноябрь-13-20245 минут чтения

В огромном цифровом ландшафте, где бесчисленные сайты борются за внимание, очень важно понимать правила работы. Для веб-разработчиков, SEO-специалистов и создателей контента расшифровка robots.txt является ключом к этичному и эффективному веб-скраппингу. Это руководство поможет вам понять, как ответственно взаимодействовать с веб-сайтами с помощью robots.txt и sitemaps.

Понимание роли Robots.txt в веб-ползании

Веб-ползание является основой того, как поисковые системы обнаруживают и индексируют контент в Интернете. Веб-сайты используют файлы robots.txt в качестве основного инструмента для управления и контроля за этим процессом. Эти файлы служат набором инструкций для веб-роботов, включая ботов поисковых систем, указывая им, к какому контенту обращаться, а какой игнорировать.

Назначение robots.txt двояко. Он помогает владельцам сайтов защитить конфиденциальную информацию и оптимизировать работу сервера, а также обеспечивает основу для этичного веб-скреппинга.

Понимание Robots.txt 

Чтобы проиллюстрировать работу robots.txt, давайте рассмотрим пример этого сайта. Типичный файл robots.txt включает такие директивы, как User-agent, Disallow и Allow.

  • User-agent указывает, какие боты должны следовать правилам. Например, "User-agent: *" применяется ко всем ботам.
  • Disallow предотвращает доступ ботов к определенным областям, таким как административные разделы или частные каталоги.
  • Allow предоставляет доступ к определенным ресурсам, обеспечивая доступ к динамическим файлам, необходимым для работы сайта.

На этом сайте robots.txt файл выглядит следующим образом:

  • Как вы можете видеть, этот сайт Запрещает доступ на эти пути URL:
    • /wp-content/uploads/wc-logs/
    • /wp-content/uploads/woocommerce_transient_files/
    • /wp-content/uploads/woocommerce_uploads/
    • /wp-admin/ (область администрирования WordPress)
  • Разрешить доступ специально для того, чтобы /wp-admin/admin-ajax.php, что позволяет краулерам получить доступ к этому файлу для необходимой функциональности AJAX.
  • Блок Yoast SEO:
    • Линия Запретить: пуст, что означает отсутствие дополнительных ограничений, добавляемых этим блоком.
    • Карта сайта предоставлена: https://daystate.com/sitemap_index.xmlЭто помогает поисковым системам находить все ключевые URL-адреса для индексации.

Что такое файл Sitemap?

Карта сайта - это важнейший компонент сайта, в котором перечислены все важные URL-адреса. Она служит дорожной картой для поисковых систем, позволяя им быстро находить и индексировать новый или обновленный контент.

Для владельцев сайтов карты сайта имеют неоценимое значение. Они гарантируют, что все релевантные страницы будут видны поисковым системам, способствуя лучшей индексации и ранжированию. Преимущества карт сайта выходят за рамки SEO: они помогают улучшить восприятие сайта пользователями, обеспечивая легкое обнаружение контента.

https://daystate.com/robots.txt файл robots. txt содержит ссылку на карту сайта, предоставляя поисковым системам структурированный путь. Эта ссылка необходима для эффективного наполнения и индексации содержимого сайта.

Вот как выглядит карта сайта штата Daystate:

Например, давайте перейдем по ссылке"https://daystate.com/product-sitemap.xml".

Как видите, мы можем видеть все URL-адреса "Продуктов" в этом сценарии. Ниже приведен сценарий Python, предназначенный для сканирования каждого продукта. Он начинает с разбора XML-страницы продуктов, чтобы извлечь все URL-адреса продуктов, затем перебирает каждый URL-адрес, чтобы извлечь название и цену продукта.

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))

Почему оба файла важны для SEO и веб-скрапинга

Вместе файлы robots.txt и sitemaps составляют основу SEO и этичной практики веб-скреппинга. Robots.txt направляет веб-гусеницы в разрешенные области, защищая конфиденциальные данные и снижая нагрузку на сервер. Кроме того, карты сайта улучшают обнаружение контента поисковыми системами, обеспечивая оперативную индексацию новых страниц.

Для веб-скреперов соблюдение этих файлов имеет первостепенное значение. Игнорирование директив robots.txt может привести к штрафам, нанести ущерб репутации и рейтингу в поисковых системах. Этичные скреперы следуют этим рекомендациям, способствуя уважительному отношению к цифровой среде.

Заключение

Robots.txt Файлы и карты сайта - незаменимые инструменты в веб-краулинге. Они обеспечивают структурированный подход к управлению доступом к сайту и его индексацией, принося пользу как владельцам сайтов, так и веб-скреперам.
Понимая и соблюдая эти элементы, вы сможете оптимизировать свои цифровые стратегии, улучшить SEO и использовать этичные методы веб-скреппинга. Помните, что ответственное использование поддерживает баланс веб-экосистемы, обеспечивая положительный опыт для всех заинтересованных сторон.