首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查网站每个链接的最佳方式是什么?

检查网站每个链接的最佳方式是什么?
EN

Stack Overflow用户
提问于 2011-09-02 04:35:52
回答 2查看 246关注 0票数 2

我想创建一个爬虫,跟踪网站的每个链接,并检查网址,看看它是否工作。现在,我的代码使用url.openStream()打开URL。

那么创建爬虫的最好方法是什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-02 05:00:35

使用像Jsoup这样的超文本标记语言解析器。

代码语言:javascript
复制
Set<String> validLinks = new HashSet<String>();
Set<String> invalidLinks = new HashSet<String>();

Document document = Jsoup.connect("http://example.com").get();
Elements links = document.select("a");

for (Element link : links) {
    String url = link.absUrl("href");

    if (!validLinks.contains(url) && !invalidLinks.contains(url)) {
        try {
            int statusCode = Jsoup.connect(url).execute().statusCode();

            if (200 <= statusCode && statusCode < 400) {
                validLinks.add(url);
            } else {
                invalidLinks.add(url);
            }
        } catch (Exception e) {
            invalidLinks.add(url);
        }
    }
}

您可能希望在该循环中发送一个HEAD,以提高效率,但随后您将不得不使用URLConnection,因为Jsoup在设计上不支持它( HEAD不返回任何内容)。

票数 4
EN

Stack Overflow用户

发布于 2017-12-24 02:43:48

使用内部链接分析器工具来分析搜索引擎爬虫可以在您网站的特定页面上检测到的链接。搜索...最佳实践内部链接。链接数量:早在2008年,Matt Cutts (谷歌网络垃圾邮件团队的负责人)就建议将链接数量限制在每页最多100个链接。

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

https://stackoverflow.com/questions/7276192

复制
相关文章

相似问题

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