跳转至

动态网站使用 Python 向 Google 自动提交站点地图

如果你有一个非常动态的网站,变化非常频繁和迅速,你需要确保谷歌机器人能够尽快找到和抓取你的网页。 为此,我们将使用"Ping"功能,用于请求 Google 对网站地图进行爬网。如果要使用它,只需满足以下两个要求:

  1. 网站地图必须在 Google 搜索控制台上可用。
  2. 如果站点地图未更改,请勿过度使用此功能。

有关此功能的详细信息, 可以查看此页

1.- 创建 Python 请求

创建 Python 请求非常简单,因为我们只需要向此终结点发送 HTTP GET 请求:http://www.google.com/ping?sitemap=<complete_url_of_sitemap>站点映射的 URL 将在 HTTP GET 请求中作为参数发送,如示例中所示。

要发出请求,我们可以使用模块 urllib.请求,如下代码所示:

1
2
3
4
import urllib.request

url = "http://www.google.com/ping?sitemap=https://www.example.com/sitemap.xml"
response = urllib.request.urlopen(url)

如果我们想得到某种通知,以确保我们的网站地图已正确提交,我们可以使用 BeautifulSoup 分析响应页面,如下所示:

sitemaps-to-be-crawled-with-py_1.png

指示站点地图已正确提交和接收的消息使用 H2 标记,因此使 用BeautifulSoup,我们可以解析 H2 标头并在控制台中打印:

1
2
3
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.read(), "html.parser")
print(soup.find("h2").text)

如果请求成功发出,这将打印一条消息,如"收到站点地图通知"。

最后,如果我们把所有代码放在一起,它看起来像:

import urllib.request
from bs4 import BeautifulSoup

try:
    url = "http://www.google.com/ping?sitemap=https://www.example.com/sitemap.xml"
    response = urllib.request.urlopen(url)
    soup = BeautifulSoup(response.read(), "html.parser")
    print(soup.find("h2").text)

except Exception as e:
    print(e)

2.- 计划正在运行的 Python 脚本

如本文开头所述,如果网站的网页变化非常频繁且快速,则使用 Ping 功能特别有用,否则,如果您想要使用 Ping 功能使网站地图异常爬网,则只需使用浏览器发送 HTTP GET 请求。

但是,如果您的网站变化如此之快,您可以创建 Python 脚本并安排它每天运行。在这种情况下,您可以使用 cronjobs,或者如果您没有任何服务器可以执行 Python 脚本,则可以使用 AWS lambda 函数与 Cloudwatch 功能。

所以,这所有的人,我希望你发现这个简单的技巧有帮助!

原文翻译自网文,作者:
原文: https://www.danielherediamejias.com/request-sitemaps-to-be-crawled-with-python/