用于抓取HTML的transmogrifier源蓝图
项目描述
简介
Transmogrifier蓝图,查看HTML项之间的链接方式,以收集有关项目的元数据。它们可以帮助您重新组织内容。
transmogrify.siteanalyser.sitemapper
获取导航HTML,例如整个站点地图、面包屑或导航菜单,使用嵌套链接构建站点结构和页面标题。这可以用来清理项目URL和标题,以及隐藏不应在菜单中显示的内容。这对于清理使用扁平URL方案(如“display?id=xxx”)的站点非常有用。
选项
- 字段:
包含站点地图或嵌套链接的项目的字段的名称
- 字段表达式:
确定包含站点地图的字段的表达式
- 面包屑字段:
包含面包屑风格HTML的字段的键。例如:<a href="..">文件夹</a> > 项目。
- 文件夹类型:
如果设置,将确保站点地图中所有父项都是此类型,如果需要,则将项目移动到默认页面
- 排除导航键:
如果此项目未在站点地图中找到,将此键设置为“True”。默认为“exclude-from-navigation”
- 标题键:
如果没有标题,请从站点地图更新此字段
- 路径_sub:
换行分隔的正则表达式和替换,以便调整路径,更改内容移动到的位置
- 条件:
如果为假,则不移动此项目
transmogrify.siteanalyser.urltidy
将URL中的id标准化,以便添加到plone
以下将根据TALES表达式整理URL
$> bin/funnelweb --urltidy:link_expr="python:item['_path'].endswith('.html') and item['_path'][:-5] or item['_path']"
如果您想在上传之前移动内容,也可以使用urltidy步骤,例如:
$> bin/funnelweb --urltidy:link_expr=python:item['_path'].startswith('/news') and '/otn/news'+item['path'][5:] or item['_path']
选项
- 条件:
应用转换的TAL表达式
- 区域设置:
返回用于id标准化的区域设置的TALES表达式。例如:“string:en”
- 链接表达式:
用于更改项目“_path”的TALES表达式
- 使用标题:
条件TAL表达式,用于将末尾路径元素更改为item[‘_title’]的标准化版本
transmogrify.siteanalyser.attach
查找与单个页面紧密相关的项目,并将它们移动。例如,如果图像位于图像文件夹中,但仅从/page中的单个img元素引用,则该图像将与页面“合并”。合并的方式取决于“fields”设置。合并可以是将子项的内容移动到父项的字段中,也可以是通过包含。
或者以下操作将仅移动图像附件,并使用“index-html”作为新创建文件夹的默认页面的新名称
[funnelweb] recipe = funnelweb attachmentguess-condition = python: subitem.get('_type') in ['Image'] attachmentguess-defaultpage = index-html
选项
- 字段:
返回更改项的字典的TALES表达式。它将使用“item”,“subitem”和“i”变量。例如:python:{‘attachment’:subitem[‘text’]}。这将适用于所有子项。子项将被删除。
- 条件:
应用转换的TALES表达式(默认=’python:True’)
- 默认页面:
(默认=’index-html’)
transmogrify.siteanalyser.title
此蓝图将使用网络爬虫生成的项的_backlinks,如果未向项提供标题字段,它将尝试从链接名称中猜测它,这些名称链接到该文档。您可以指定一个选项“ignore”,以指定永远不会使用的标题
如果无法从反向链接中猜测它,它将默认使用清理后的文件名
选项
- 条件:
应用转换的TAL表达式
- 忽略:
换行分隔的字符串列表,不会用作标题。默认为“next”,“previous”
transmogrify.siteanalyser.defaultpage
确定项是否是容器的默认页面(它具有许多指向该容器中项的链接,即使它不在该文件夹中),然后将它移动到该文件夹。
选项
- 模式:
‘链接’或‘路径’(默认=链接)。‘链接’模式通过查看链接来决定一个项目是否为子树的默认页面。‘路径’模式使用父路径表达式来决定一个项目是否为该父级的默认页面。
- min_links:
如果一个页面至少有这个数量的链接指向文件夹中的内容,则将其移动到该文件夹并使其成为默认页面。(默认=2)
- max_uplinks:
如果一个页面的父链接数超过max_uplinks,则不会移动。(默认=2)
- parent_path:
规则由输入的parent_path选项定义,该选项是一个包含对item、transmogrifier、name、options和modules变量访问的表达式。返回的值用于通过路径查找可能的父项目。如果找到,则将项目移动到该父项目,适当地设置父项目_defaultpage键,然后我们转向处理管道中的另一个项目。因此,如果parent_path规则为同一父级返回多个项目,则管道中的第一个项目将具有优先权。
- 条件:
默认=python:True
transmogrify.siteanalyser.relinker
帮助重新结构化内容。如果您想将内容从一个路径移动到另一个路径,则在先前的blueprints中将‘_path’调整为新路径。创建一个名为‘_origin’的新字段,并将旧路径放入其中。一旦通过relinker通过,所有href、img标签等在html内容中指向已移动内容的都将更改。在重新链接后将删除所有‘_origin’字段。
选项
- ignore_duplicates:
如果为‘True’,则当两个项目从同一位置重定向时不会引发错误。这可能在某些CMS中发生,其中内容可以位于站点的不同url中
- broken_link_normalise:
每个新行的TAL表达式,它从html内部获取‘url’并返回一个将与站点中现有链接之一匹配的链接。必须返回完整的url,而不是路径。这在许多不同链接可以指向相同内容时很有用。
transmogrify.pathsorter
如果项目在文件夹中的同一级别,则将根据由transmogrify.webcrawler给出的‘_sortorder’键进行排序。
此外
如果容器具有‘text’键,则将创建默认页面。
如果项目的名称在‘default_pages’中,并且其父级尚未具有默认页面,则该项目将被设置为父级的默认页面。
选项
- default_pages:
如果项目与这些名称之一匹配,则将项目设置为父级的默认页面。默认为‘index.html’
- default_containers:
如果给定项目的父级不存在,则将创建该项目。_type键将设置为‘default_containers’中的第一个项目。默认为‘Folder’。
变更日志
1.3 (2012-12-28)
添加了sitemapper蓝图
将文本转换为unicode baseNormalize,因为分解需要unicode值才能正常工作 [gborelli]
在Backlinks标题中添加ignore_re属性以用于忽略正则表达式条件 [ivanteoh]
在relinker中添加‘ignore_duplicates’和‘broken_link_normalise’ [djay]
添加了invalid_ids选项 [ivanteoh]
relinker重新链接包含‘<’以及额外指定字段的任何字段 [djay]
清理了日志 [djay]
修复了默认页面的重新链接 [djay]
标题必须唯一才能用于backlinks [djay]
1.2 (2012-04-28)
将transmogrify.pathsorter移动到transmogrify.siteanalyser.pathsorter [djay]
1.1 (2012-04-18)
添加了transmogrify.siteanalyser.sitemapper [djay]
将transmogrify.siteanalyser.urltidy从relinker中分离出来 [djay]
确保urltidy始终创建唯一的url [djay]
添加了从标题到urltidy获取id的功能 [djay]
改进了日志 [djay]
修复了attach中的错误,其中两个项目可能具有相同的路径 [djay]
1.0 (2011-06-29)
1.0版本发布
1.0b8 (2011-02-12)
更健壮的html解析
1.0b7 (2011-02-06)
如果文本为None则显示错误
修复了重写链接中的坏字符错误
修复了丢失项目的错误
添加了hidefromnav蓝图。进行手动隐藏
1.0b6 (2010-12-15)
从链接中删除空值以避免lxml错误
将日志信息汇总为单个条目
1.0b5 (2010-12-13)
条件放置错误,导致丢弃项目
改进日志记录
处理不存在的默认页面
1.0b4 (2010-11-11)
修复了_defaultpage未重新链接的错误
1.0b3 (2010-11-09)
修复了在重连器中引用链接的错误
1.0b2 (2010-11-08)
向站点分析器蓝图添加条件
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源分发
transmogrify.siteanalyser-1.3.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 2bbd1a7adaf5a69f6ae3e5a7d7b326243a4081b68fda7afac7af959f1ee735d5 |
|
MD5 | e77acc891be00dda0b03702b96820390 |
|
BLAKE2b-256 | b5985f48dd64a5fc3e5f04c1c019399700de9b57e912de36aef0b330bc4cfc22 |