Datasette插件,可阻止使用robots.txt的所有机器人
项目描述
datasette-block-robots
Datasette插件,可阻止使用robots.txt的机器人和爬虫
安装
在Datasette相同的环境中安装此插件。
$ pip install datasette-block-robots
使用
安装插件后,您的Datasette实例上的/robots.txt
将返回以下内容
User-agent: *
Disallow: /
这将请求所有机器人和爬虫不要访问您站点的任何页面。
以下是一个插件操作演示:https://sqlite-generate-demo.datasette.io/robots.txt
配置
默认情况下,插件将使用Disallow: /
阻止对站点的所有访问。
如果您想让索引页面被搜索引擎索引,而不会爬取数据库、表或行页面,可以使用以下内容
{
"plugins": {
"datasette-block-robots": {
"allow_only_index": true
}
}
}
这将返回如下的/robots.txt
User-agent: *
Disallow: /db1
Disallow: /db2
为每个附加数据库添加一个Disallow
行。
要使用自定义路径阻止对站点特定区域的访问,请将以下内容添加到您的metadata.json
配置文件中
{
"plugins": {
"datasette-block-robots": {
"disallow": ["/mydatabase/mytable"]
}
}
}
这将导致以下/robots.txt
User-agent: *
Disallow: /mydatabase/mytable
或者,您可以使用literal
配置选项来设置整个robots.txt
文件的完整内容。如果您使用的是YAML而不是JSON,并且有一个metadata.yml
文件,以下是这样做的方法
plugins:
datasette-block-robots:
literal: |-
User-agent: *
Disallow: /
User-agent: Bingbot
User-agent: Googlebot
Disallow:
此示例将阻止除Googlebot和Bingbot之外的所有爬虫,允许它们爬取整个站点。
与其他插件扩展
此插件为Datasette添加了一个新的插件钩子,名为block_robots_extra_lines()
,其他插件可以使用它来向robots.txt
文件添加自己的附加行。
钩子可以可选地接受以下参数
datasette
:当前的Datasette实例。您可以使用它来执行SQL查询或读取插件配置设置。request
:表示对/robots.txt
的请求的 请求对象。
钩子应返回一个字符串列表,每个字符串代表要添加到 robots.txt
文件中的一行。
还可以返回一个 async def
函数,该函数将被等待并用于生成行列表。如果需要在钩子实现中调用 await
,请使用此选项。
此示例使用钩子将 Sitemap: http://example.com/sitemap.xml
行添加到 robots.txt
文件。
from datasette import hookimpl
@hookimpl
def block_robots_extra_lines(datasette, request):
return [
"Sitemap: {}".format(datasette.absolute_url(request, "/sitemap.xml")),
]
此示例根据数据库查询阻止对路径的访问。
@hookimpl
def block_robots_extra_lines(datasette):
async def inner():
db = datasette.get_database()
result = await db.execute("select path from mytable")
return [
"Disallow: /{}".format(row["path"]) for row in result
]
return inner
datasette-sitemap 是使用此钩子的插件的一个示例。
开发
要本地设置此插件,首先检出代码。然后创建一个新的虚拟环境
cd datasette-block-robots
python3 -mvenv venv
source venv/bin/activate
或者如果您正在使用 pipenv
pipenv shell
现在安装依赖项和测试
pip install -e '.[test]'
要运行测试
pytest
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
构建分布
datasette-block-robots-1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e679fc43c5694194a6e393902bc9e06d611563f4947a8ad7ac3127877f0a9f74 |
|
MD5 | 02d9fef22e47b885b0ec2082ca450a2d |
|
BLAKE2b-256 | 009b983c94277d304381ee875500e8146e3d3c1456e01cd584c81e3bbcccf1c7 |
datasette_block_robots-1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ea1e4046fd1aab1db13db09ea89dba95714aabf034f464cff92f2b6f0a123ef8 |
|
MD5 | b7255c9a09ba4b04bc70701c8e131a85 |
|
BLAKE2b-256 | 7d99189fc74fc96a2c223fbc384962df0d68ca8b260457bf23e63402b82eb8aa |