Plone的附加组件,提供链接有效性检查和报告。
项目描述
该系统是一个集成解决方案,后台有一个无头实例处理项目。
需要ZEO或其他共享存储。
兼容性:Plone 4+,Plone 5
安装
将包添加到您的buildout中,然后从Plone内部安装附加组件。
接下来,设置一个运行链接检查处理器的实例。这可以是一个现有实例,也可以是另一个实例
$ bin/instance linkcheck
此过程应始终运行,但可以在不丢失数据的情况下随时停止和启动。
控制面板
系统启动并运行后,通过“链接有效性”控制面板进行交互
http://localhost:8080/site/@@linkcheck-controlpanel
它可以从Plone控制面板概览中访问。
报告
报告标签页列出当前问题。
通知
提供了一种基于RSS源的通知系统
http://localhost:8080/site/++linkcheck++feed.rss请注意,此视图需要“管理门户”权限。要允许与其他服务的集成,从报告屏幕可以提供一个自认证链接。
提供RSS订阅。点击橙色图标
要设置电子邮件通知,请使用此订阅设置RSS驱动的通讯稿,并调整频率以匹配更新间隔(例如每天早上)。这里有很多选择。《MailChimp》使操作变得非常简单。
设置
控制面板上的设置选项卡提供了并发级别、检查间隔、链接过期时间的配置,以及当前活动链接数量和队列大小的统计信息。
还有一个设置允许处理器使用发布者测试内部链接的有效性(这会消耗额外的系统资源)。如果启用此模式,处理器将尝试发布内部链接并检查响应是否良好。
您还可以从控制面板爬取整个网站以检查断链。您可以通过类型和工作流状态约束要检查的内容。请注意,这可能需要很长时间!
导出
您可以将关于断链的报告以各种格式导出。调用 @@linkcheck-export?export_type=csv 进行导出。支持的格式有:csv、xlsx、xls、tsv、yaml、html和json。
它是如何工作的?
当安装此附加组件时,Plone将每个HTML响应通过一个集合步骤,该步骤跟踪:
出站HTML响应的状态码;
如果可用,响应体中出现的超链接。
这发生得非常快。使用lxml库解析和搜索响应文档中的链接。
这种方法的好处是我们不需要花费额外的资源来检查我们已渲染的页面的有效性。
这里有一个假设,即网站被搜索引擎机器人或其他爬虫服务定期且彻底地访问。对于公共网站,这通常是正确的。
链接状态
良好的状态是200 OK或302 Moved Temporarily;中立状态是变坏或未检查的良好链接;不良状态是其他所有状态,包括301 Moved Permanently。
在任何情况下,外部链接的状态仅在配置的间隔(默认为24小时)内更新一次。
历史
链接有效性检查以前是Plone的核心功能,但从4.x系列开始,没有这样的功能。有人提议将其重新引入核心(见PLIP #10987),但这个想法已经被废弃。
有一个第三方产品,gocept.linkchecker,它依赖于用Grok框架编写的单独进程来执行外部链接检查。它通过XML-RPC与Plone通信。有一个Plone 4兼容分支可用。此产品需要显著更多的资源(CPU和内存),因为它定期发布所有内部链接。
性能
在默认配置下,系统不应产生显著开销。
尽管如此,我们已经将数据放入Zope 2工具中,以便轻松将其安装到单独的数据库中。
保持单独数据库以更新
使用 plone.recipe.zope2instance 食谱进行 buildout,这样配置位于 /site 的 Plone 网站挂载点。
zope-conf-additional = <zodb_db linkcheck> mount-point /site/portal_linkcheck container-class collective.linkcheck.tool.LinkCheckTool <zeoclient> server ${zeo:zeo-address} storage linkcheck </zeoclient> </zodb_db>
这应该与 plone.recipe.zeoserver 部分相匹配
zeo-conf-additional = <filestorage linkcheck> path ${buildout:directory}/var/filestorage/linkcheck.fs </filestorage>
请注意,您必须在使用附加组件之前,通过 ZMI 添加挂载点才能使其正常工作。
许可证
GPLv3 (https://gnu.ac.cn/licenses/gpl.html).
贡献者
Malthe Borch, mborch@gmail.com
Philip Bauer, bauer@starzel.de
Jörg Kubaile
lewicki
petschki
Toni Fischer
变更
1.5 (2017-10-10)
更新德语翻译 [pbauer]
在爬取网站之前清除 [pbauer]
当认证为空时捕获错误 [pbauer]
在尝试删除空条目时添加回退 [pbauer]
1.4.dev1_gww (2017-03-22)
尚未有任何更改。
1.3.dev1_gww (2017-03-22)
允许以各种格式导出关于损坏链接的报告。调用 @@linkcheck-export?export_type=json 以获取视图。支持的格式有 csv、xlsx、xls、tsv、yaml、html 和 json。 [pbauer]
添加设置以选择在爬取和更新时要检查的工作流状态。 [pbauer]
添加超时设置。 [pbauer]
允许使用较新版本的 Requests。 [pbauer]
添加设置以选择在爬取和更新时要检查的 portal_types。 [lewicki]
添加一个视图 @@linkcheck 以检查对象上下文中的链接。 [lewicki]
添加设置以禁用每次请求上的事件触发。 [lewicki]
处理 mailto 链接 [Jörg Kubaile]
处理相对 URL [Toni Fischer]
添加链接以从报告列表中删除条目 [Jörg Kubaile]
添加德语翻译 [petschki]
添加 .gitignore [petschki]
添加新的注册条目升级步骤 [petschki]
1.2 (2012-11-22)
修复了包含不可引用字符的 URL 导致控制面板损坏的问题。
丢弃锚点 (#) 和查询字符串 (?) URL 组件。
解析带有父指针(“../”)的链接以避免重复索引。
始终进入运行循环并定期轮询新网站。
修复了复合队列实现使用不当的问题。
1.1 (2012-06-25)
不存储路径(文档中的位置)信息;它无用的,并且它占用过多的磁盘空间。
添加限制存储引用者数量的选项(默认:5)。
数据结构优化。
尽可能使用基于桶的数据类型,并避免复制字符串(而是使用基于整数的查找表)。
注意:需要迁移。请运行升级步骤。
1.0.2 (2012-06-15)
添加白名单(忽略)选项。这是一个匹配链接的正则表达式列表,以防止它们被工具记录。
使报告可排序。
1.0.1 (2012-05-10)
引用传递给“入队”动作的 URL。
添加了对 HEAD 请求的支持。
使用 gzip 库正确读取和解压缩 zlib 压缩响应。
1.0 (2012-05-10)
初始公开版本。
项目详情
collective.linkcheck-1.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9abac892e88797e58a5bf4ad40d0960e00922c661ed8299342858c7b0aa95491 |
|
MD5 | 88bb3d51fa96959328db520b6fd8627d |
|
BLAKE2b-256 | f1847b52f9d4406048b5016650cad384cfc1406e765c715a2c8f41870ff55d5d |