Heritrix 单站点抓取,包括所需的场外资产
Heritrix single-site scrape, including required off-site assets
我认为需要帮助编译 Heritrix 决定规则,尽管我对其他 Heritrix 建议持开放态度:https://webarchive.jira.com/wiki/display/Heritrix/Configuring+Crawl+Scope+Using+DecideRules
我需要抓取网站的整个副本(在爬虫-beans.cxml 种子列表中),但不抓取任何外部(站外)页面。应下载呈现当前网站所需的任何外部资源,但不要点击任何指向站外页面的链接 - 仅下载当前 page/domain.
的资源
例如,呈现页面所需的 CDN 内容可能托管在外部域(可能是 AWS 或 Cloudflare)上,因此我需要下载该内容,并跟踪所有域内链接,但是不要点击任何指向当前域范围之外的页面的链接。
您可以使用 3 个决定规则:
- 第一个接受所有非html页面,使用
ContentTypeNotMatchesRegexDecideRule
;
- 第二个接受当前域中的所有 url。
- 第三个拒绝所有不在域内且不直接的页面
从域到达(alsoCheckVia 选项)
所以是这样的:
<bean id="scope" class="org.archive.modules.deciderules.DecideRuleSequence">
<property name="rules">
<list>
<!-- Begin by REJECTing all... -->
<bean class="org.archive.modules.deciderules.RejectDecideRule" />
<bean class="org.archive.modules.deciderules.ContentTypeNotMatchesRegexDecideRule">
<property name="decision" value="ACCEPT"/>
<property name="regex" value="(?i)html|wml"/>
</bean>
<bean class="org.archive.modules.deciderules.surt.SurtPrefixedDecideRule">
<property name="decision" value="ACCEPT"/>
<property name="surtsSource">
<bean class="org.archive.spring.ConfigString">
<property name="value">
<value>
http://(org,yoursite,
</value>
</property>
</bean>
</property>
</bean>
<bean class="org.archive.modules.deciderules.surt.NotSurtPrefixedDecideRule">
<property name="decision" value="REJECT"/>
<property name="alsoCheckVia" value="true"/>
<property name="surtsSource">
<bean class="org.archive.spring.ConfigString">
<property name="value">
<value>
http://(org,yoursite,
</value>
</property>
</bean>
</property>
</bean>
</list>
</property>
</bean>
我认为需要帮助编译 Heritrix 决定规则,尽管我对其他 Heritrix 建议持开放态度:https://webarchive.jira.com/wiki/display/Heritrix/Configuring+Crawl+Scope+Using+DecideRules
我需要抓取网站的整个副本(在爬虫-beans.cxml 种子列表中),但不抓取任何外部(站外)页面。应下载呈现当前网站所需的任何外部资源,但不要点击任何指向站外页面的链接 - 仅下载当前 page/domain.
的资源例如,呈现页面所需的 CDN 内容可能托管在外部域(可能是 AWS 或 Cloudflare)上,因此我需要下载该内容,并跟踪所有域内链接,但是不要点击任何指向当前域范围之外的页面的链接。
您可以使用 3 个决定规则:
- 第一个接受所有非html页面,使用
ContentTypeNotMatchesRegexDecideRule
; - 第二个接受当前域中的所有 url。
- 第三个拒绝所有不在域内且不直接的页面 从域到达(alsoCheckVia 选项)
所以是这样的:
<bean id="scope" class="org.archive.modules.deciderules.DecideRuleSequence">
<property name="rules">
<list>
<!-- Begin by REJECTing all... -->
<bean class="org.archive.modules.deciderules.RejectDecideRule" />
<bean class="org.archive.modules.deciderules.ContentTypeNotMatchesRegexDecideRule">
<property name="decision" value="ACCEPT"/>
<property name="regex" value="(?i)html|wml"/>
</bean>
<bean class="org.archive.modules.deciderules.surt.SurtPrefixedDecideRule">
<property name="decision" value="ACCEPT"/>
<property name="surtsSource">
<bean class="org.archive.spring.ConfigString">
<property name="value">
<value>
http://(org,yoursite,
</value>
</property>
</bean>
</property>
</bean>
<bean class="org.archive.modules.deciderules.surt.NotSurtPrefixedDecideRule">
<property name="decision" value="REJECT"/>
<property name="alsoCheckVia" value="true"/>
<property name="surtsSource">
<bean class="org.archive.spring.ConfigString">
<property name="value">
<value>
http://(org,yoursite,
</value>
</property>
</bean>
</property>
</bean>
</list>
</property>
</bean>