首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在url重定向中,Crawler4j将null作为parentURL,将零作为parentDocID

在url重定向中,Crawler4j将null作为parentURL,将零作为parentDocID
EN

Stack Overflow用户
提问于 2012-07-02 14:56:09
回答 1查看 554关注 0票数 1

我正在使用最新版本的Crawler4j来抓取一些提要URL。我已经传递了一些种子URL和文档ID,我还将深度设置为零,因为我只想要该页面的内容。

问题是我不能获得这些种子URL的parentdocid和父URL。我想知道与原始URL关联的重定向URL。

我正在使用page.getWebURL().getParentUrl();来获取父url。

例如http://telegraph.feedsportal.com/c/32726/f/568297/s/18b0dd9a/l/0L0Stelegraph0O0Cculture0Cmusic0Cmusic0Enews0C87789850CNeil0EYoung0Eto0Erelease0Eautobiography0Bhtml/story01.htm和文档id 10

有关更详细的说明,请访问http://code.google.com/p/crawler4j/issues/detail?id=163

有谁有类似的问题吗?

我再次尝试使用不同的URL,但仍然是相同的结果。controller.addSeed("feeds.reuters.com/~r/reuters/bankruptcyNews/~3/es0kEUT8gI0/",321);

输出:--

ParentDocId 0 DocID 322父页为空

代码语言:javascript
复制
UPDATE:--------

我检查了一下crawler4j代码,暂时解决了我的问题。

代码语言:javascript
复制
-------- PageFetcher.java ---------

if (header != null) {

String movedToUrl = header.getValue();
movedToUrl = URLCanonicalizer.getCanonicalURL(movedToUrl, toFetchURL);
fetchResult.setMovedToUrl(movedToUrl);                                                            
webUrl.setParentUrl(webUrl.getURL()); //My Custom Code to add Parent URL.
/*This won't work due to collision with next            
document ID which needs to be unique.
webUrl.setParentDocid(webUrl.getDocid());*/

}
EN

回答 1

Stack Overflow用户

发布于 2013-07-09 10:48:34

我知道这是一个老问题,但我最近也在处理同样的问题,所以我想我应该把我的解决方案提出来,以防其他人来寻找解决方案。

基本上,在重定向页面上设置的parentURL和parentDocId不应该是原始页面的URL和DocId,它们被设置为原始页面的parentURL和parentDocId。

这是因为parentURL和parentDocId应该表示链接当前页面的页面,而不是重定向当前页面的页面。

考虑到这些信息,我找到了一个解决方案。

只需覆盖WebCrawler的handlePageStatusCode()方法并添加以下行:

代码语言:javascript
复制
if (webUrl.getParentUrl() == null) {
     webUrl.setParentUrl(webUrl.getURL());
}

使用此代码,每当处理新页面时,parentUrl最初将被设置为null,但现在它将被设置为当前页面的url。如前所述,当重定向页面被添加到队列中时,其parentUrl被设置为被重定向的页面的parentUrl,因此,当重定向页面被处理时,parentUrl将被设置为不会被改变。

现在,当您在visit()方法中或其他任何地方处理页面时,您将能够从页面WebUrlparentUrl中提取原始url。

希望这些信息能帮助到一些人!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11289004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档