ttree / contentinsight
从现有网站提取基本内容清单信息的工具
Requires
This package is auto-updated.
Last update: 2024-08-26 04:25:28 UTC
README

此TYPO3 Flow包提供CLI工具,用于从现有网站提取内容清单CSV。
此包处于开发中,被视为测试版。此包需要Flow 2.3。
功能
- 提取网站结构和基本元数据
- 支持爬取预设
- 灵活的报表构建(包括CSV报表构建器,但您可以注册自己的报表构建器)
- 跳过正则表达式中的URI
- 根据文档树结构对清单进行排序
待办事项
- 生成可读的页面ID(如,1,1.1,1.2,2,2.1,2.2,...)
- 更新报表/多个索引支持
- 从Google Analytics获取分析数据
配置
请检查Configuration/Settings.yaml
以获取详细配置。
默认情况下,此包将所有原始HTTP请求缓存一天。您可以在自己的Settings.yaml
和Caches.yaml
中更改此设置。
基本预设
基本预设会自动与所有预设合并。您可以使用设置presets.[preset_name].properties.[property_name].enabled
启用或禁用任何属性。
Ttree: ContentInsight: presets: '*': properties: 'pageTitle': enabled: TRUE 'navigationTitle': enabled: TRUE
自定义预设
您可以定义自定义预设以爬取不同类型的信息。使用class
设置,您可以使用自己的处理器实现从当前URI获取信息。您的处理器必须实现Ttree\ContentInsight\CrawlerProcessor\ProcessorInterface
Ttree: ContentInsight: presets: 'custom': properties: 'pageTitle': class: 'Your\Package\CrawlerProcessor\PageTitleProcessor' 'metaDescription': enabled: TRUE 'metaKeywords': enabled: TRUE 'firstLevelHeader': enabled: TRUE
如何构建报表?
此包支持CSV报表,但您可以注册自己的报表构建器。请检查Settings.yaml
Ttree: ContentInsight: presets: 'custom': reportConfigurations: 'csv': enabled: TRUE renderType: 'Csv' renderTypeOptions: displayColumnHeaders: TRUE reportPath: '%FLOW_PATH_DATA%Reports/Ttree.ContentInsight' reportPrefix: 'content-inventory-report' properties: 'id': label: 'ID' 'pageTitle': label: 'Page Title' 'navigationTitle': label: 'Navigation Title' 'externalLink': label: 'External Link' postProcessor: 'Boolean' 'currentUri': label: 'URL' 'metaDescription': label: 'Meta Description' 'metaKeywords': label: 'Meta Keywords' 'firstLevelHeaderCount': label: 'Main Header Count (H1)' 'firstLevelHeaderContent': label: 'Main Header Content (H1)' 'remark': label: 'Crawling Remark'
properties
部分中的键必须与CrawlerProcessor
对象生成的键匹配。
每个列的位置可以使用以下语法指定:position: '<position-string>'
<position-string>
支持以下语法之一
start (<weight>)
end (<weight>)
before <key> (<weight>)
after <key> (<weight>)
<numerical-order>
示例
Ttree: ContentInsight: presets: 'custom': reportConfigurations: 'csv': enabled: TRUE renderType: 'Csv' renderTypeOptions: displayColumnHeaders: TRUE reportPath: '%FLOW_PATH_DATA%Reports/Ttree.ContentInsight' reportPrefix: 'content-inventory-report' properties: 'id': label: 'ID' position: '<position-string>', 'pageTitle': label: 'Page Title' position:'<position-string>'
对于单个爬取预设,如果需要,您可以注册多个报表。对于每个属性,您都可以注册一个后处理器,如果您需要在报表中操作属性,请参阅BooleanPostProcessor
的基本示例。
如何跳过特定的URI?
您可以在爬取预设中定义无效URI模式
Ttree: ContentInsight: presets: 'custom': invalidUriPatterns: 'javascript': pattern: '@^javascript\:void\(0\)$@' 'mailto': pattern: '@^mailto\:.*@' 'anchor': pattern: '@^#.*@' message: 'Link to anchor'
如果模式有message
,则所有匹配模式的URL都将被记录。默认情况下,爬虫会静默地跳过这些URL。
用法
获取完整的网站清单
# flow contentinventor:extract --base-url http://www.domain.com
或将爬虫限制在网站的某个部分
# flow contentinventor:extract --base-url http://www.domain.com/products
您可以选择爬取预设
# flow contentinventor:extract --base-url http://www.domain.com/products --preset default