如何访问网站的 robots.txt

How to access a website's robots.txt

我有一个 Java 程序,我正在编写一个接受 URL 作为参数的方法。有没有办法让方法 return 与我正在传递的 URL 关联的 'robots.txt'(例如 https://www.google.com/robots.txt)文件的副本?

提前致谢!

我现在对 robot.txt 几乎一无所知,但我似乎记得,你总是将它存储在根路径中。所以我相信像下面示例中的 getRobot() 这样的方法应该适合你:

import java.io.InputStream;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.io.IOUtils;

public class Robots {

    public static void main(String[] args) {
        System.out.println(new Robots().getRobot("http://www.google.de/q?Stack Overflow"));
    }

    public String getRobot(String url) {
        Pattern p = Pattern.compile("^(http(s?)://([^/]+))");
        Matcher m = p.matcher(url);
        if (m.find()) {
            System.out.println(m.group(1));
            try (InputStream in = new URL(m.group(1) + "/robots.txt").openStream()) {
                return IOUtils.toString(in);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return "no robots allowed";
    }
}

查看 main() 工作示例