gpt4 book ai didi

java - 指导 Crawler4j Solr 中的搜索深度

转载 作者:行者123 更新时间:2023-12-01 18:32:05 27 4
gpt4 key购买 nike

我试图让爬虫在连续 3 次尝试后每次都找不到相关页面时“中止”搜索某个子域。提取页面的标题和文本后,我开始寻找正确的页面以提交到我的 solr 集合。 (我不想添加与此查询不匹配的页面)

public void visit(Page page)
{
int docid = page.getWebURL().getDocid();
String url = page.getWebURL().getURL();
String domain = page.getWebURL().getDomain();
String path = page.getWebURL().getPath();
String subDomain = page.getWebURL().getSubDomain();
String parentUrl = page.getWebURL().getParentUrl();
String anchor = page.getWebURL().getAnchor();

System.out.println("Docid: " + docid);
System.out.println("URL: " + url);
System.out.println("Domain: '" + domain + "'");
System.out.println("Sub-domain: '" + subDomain + "'");
System.out.println("Path: '" + path + "'");
System.out.println("Parent page: " + parentUrl);
System.out.println("Anchor text: " + anchor);
System.out.println("ContentType: " + page.getContentType());

if(page.getParseData() instanceof HtmlParseData) {
String title, text;

HtmlParseData theHtmlParseData = (HtmlParseData) page.getParseData();
title = theHtmlParseData.getTitle();
text = theHtmlParseData.getText();

if ( (title.toLowerCase().contains(" word1 ") && title.toLowerCase().contains(" word2 ")) || (text.toLowerCase().contains(" word1 ") && text.toLowerCase().contains(" word2 ")) ) {
//
// submit to SOLR server
//
submit(page);

Header[] responseHeaders = page.getFetchResponseHeaders();
if (responseHeaders != null) {
System.out.println("Response headers:");
for (Header header : responseHeaders) {
System.out.println("\t" + header.getName() + ": " + header.getValue());
}
}

failedcounter = 0;// we start counting for 3 consecutive pages

} else {

failedcounter++;

}

if (failedcounter == 3) {

failedcounter = 0; // we start counting for 3 consecutive pages
int parent = page.getWebURL().getParentDocid();
parent....HtmlParseData.setOutgoingUrls(null);

}

我的问题是,如何编辑此代码的最后一行,以便我可以检索父“页面对象”并删除其传出网址,以便爬网移动到其余的子域。目前我找不到可以从父 ID 获取页面数据以删除 url 的函数。

最佳答案

visit(...)方法作为 processPage(...) 的最后语句之一被调用(WebCrawler 中的第 523 行)。

传出链接已添加到爬网程序的 frontier 中(并且一旦添加其他爬虫进程就可能会被它们处理)。

您可以通过调整shouldVisit(...)来定义所描述的行为。或(取决于具体用例)shouldFollowLinksIn(...)爬虫的

关于java - 指导 Crawler4j Solr 中的搜索深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60143513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com