开始使用 Robots.txt 和网站地图进行网络抓取

指南, 11-13-20245 分钟阅读

在浩瀚的数字世界中,无数网站竞相争夺注意力,了解参与规则至关重要。对于网站开发人员、搜索引擎优化专业人员和内容创建者来说,解码 robots.txt 是道德和有效网络搜刮的关键。本指南将帮助您了解如何负责任地使用 robots.txt 和网站地图与网站互动。

了解 Robots.txt 在网络抓取中的作用

网络抓取是搜索引擎发现和索引互联网内容的核心。网站使用 robots.txt 文件作为管理和控制这种抓取行为的主要工具。这些文件是网络机器人(包括搜索引擎机器人)的指令集,指导它们访问或忽略哪些内容。

robots.txt 有两个目的。它可以帮助网站所有者保护敏感信息,优化服务器性能,同时也为合乎道德的网络搜索提供了一个框架。

了解 Robots.txt 

为了说明 robots.txt 是如何运行的,让我们 以本网站为例。典型的 robots.txt 文件包括 User-agent、Disallow 和 Allow 等指令。

  • User-agent 指定哪些机器人应遵守规则。例如,"User-agent:*" 适用于所有机器人。
  • 禁止阻止机器人访问特定区域,如管理部分或私人目录。
  • 允许 访问特定资源,确保可访问网站功能所必需的动态文件。

在本网站上, 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 Block:
    • 线路 不允许: 为空,表示此区块不添加任何额外限制。
    • 提供网站地图: https://daystate.com/sitemap_index.xml这有助于搜索引擎定位所有关键 URL 以编制索引。

什么是网站地图?

网站地图是网站的重要组成部分,它列出了网站的所有重要 URL。它是搜索引擎的路线图,可让搜索引擎快速发现并索引新的或更新的内容。

对于网站所有者来说,网站地图非常宝贵。它们能确保搜索引擎看到所有相关页面,从而促进更好的索引和排名。网站地图的好处不仅限于搜索引擎优化,它还能确保内容易于发现,从而改善用户体验。

https://daystate.com/robots.txtrobots.txt 文件包含一个指向网站地图的链接,为搜索引擎提供了一个结构化路径。该链接对于高效抓取和索引网站内容至关重要。

下面是 日州的网站地图

例如,让我们点击"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))

为什么这两个文件对搜索引擎优化和网络抓取都很重要?

robots.txt 文件和网站地图共同构成了搜索引擎优化和合乎道德的网络搜索实践的支柱。 Robots.txt 网站地图可引导网络爬虫在允许的区域内爬行,保护敏感数据并减少服务器负载。同时,网站地图还能促进搜索引擎发现内容,确保新网页被及时索引。

对于网络搜刮者来说,尊重这些文件至关重要。无视 robots.txt 指令会导致处罚,损害声誉和搜索引擎排名。合乎道德的搜刮者会遵守这些准则,促进尊重数字环境。

结论

Robots.txt 文件和网站地图是网络抓取中不可或缺的工具。它们提供了一种管理网站访问和索引的结构化方法,使网站所有者和网络抓取者都能从中受益。
通过了解和尊重这些要素,您可以优化您的数字战略,提高搜索引擎优化,并参与合乎道德的网络刮擦实践。请记住,负责任的使用可维持网络生态系统的平衡,确保所有利益相关者都能获得良好的体验。