Java jsoup html解析机器人索引/机器人检测,noindex

Java jsoup html解析机器人索引/机器人检测,noindex,java,jsoup,bots,noindex,Java,Jsoup,Bots,Noindex,首先,这不是一个重复的问题,因为我已经检查了几乎所有的503/robot索引问题。他们都没有解决我的问题。我正试图从indiegala.com获得赠品清单,但这个网站有一些保护措施来防止机器人和机器人。我的目的并不违法,我只是想得到赠品清单,然后检查游戏是否有蒸汽交易卡。但你知道,indiegala给了我一个机器人索引。目前我正在使用该代码 String url = "https://www.indiegala.com/giveaways"; try { S

首先,这不是一个重复的问题,因为我已经检查了几乎所有的503/robot索引问题。他们都没有解决我的问题。我正试图从indiegala.com获得赠品清单,但这个网站有一些保护措施来防止机器人和机器人。我的目的并不违法,我只是想得到赠品清单,然后检查游戏是否有蒸汽交易卡。但你知道,indiegala给了我一个机器人索引。目前我正在使用该代码

       String url = "https://www.indiegala.com/giveaways";
    try {
        String content = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36").ignoreHttpErrors(true).followRedirects(true).get().html();
        System.out.println(content);
    } catch (IOException ex) {
        System.out.println(ex.toString());
    }
要查看站点的outputsource,在我的代码variable content中,您可以运行我给出的代码,我不能在这里添加输出,因为它有点长。但看起来是这样的

<head>
 <meta name="ROBOTS" content="NOINDEX, NOFOLLOW" />
</head>

那么我怎样才能通过这个保护呢?我的程序能假装像人一样通过这个保护吗?

我已经看过你的案例,并且已经找到了绕过机器人检测的方法

你需要的是饼干。见以下代码:

String url = "https://www.indiegala.com/giveaways";

Document doc = Jsoup.connect(url)
            .userAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36")
            .header("cookie", "incap_ses_436_255598=zI1vN7X6+BY84PhGvPsMBjKChVcAAAAAVhJ+1//uCecPhV2QjUMw6w==")
            .timeout(0)
            .get();
这看起来像是网站需要的特定cookie,将其添加到标题中已成功为我提供了实际的网站内容:


注意:一般来说,如果遇到这样的情况,您可以轻松地使用Chrome developer工具检查Chrome发送的请求,然后在您的Jsoup请求中复制它:

我已经看过您的案例,并且已经找到了如何绕过机器人检测的方法

你需要的是饼干。见以下代码:

String url = "https://www.indiegala.com/giveaways";

Document doc = Jsoup.connect(url)
            .userAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36")
            .header("cookie", "incap_ses_436_255598=zI1vN7X6+BY84PhGvPsMBjKChVcAAAAAVhJ+1//uCecPhV2QjUMw6w==")
            .timeout(0)
            .get();
这看起来像是网站需要的特定cookie,将其添加到标题中已成功为我提供了实际的网站内容:


注意:一般来说,如果遇到这样的情况,您可以轻松地使用Chrome开发工具检查Chrome发送的请求,然后在Jsoup请求中复制它:

,这就是我的情况。这可能会有帮助。机器人探测器检测到我的浏览器代理并显示了著名的验证码请显示我不是机器人。首先,通过使用传递给网站的标题中的chrome插件显示cookie和userAgent。我只是复制了代码中显示的cookie和userAgent,每次检测到机器人时,我都会使用常驻浏览器手动绕过验证码

Doc = Jsoup.connect(URL_String)
  .userAgent("Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36")    
  .header("cookie","AWSALB=7ygHW4oBnXOkLMVFehmoTM8F1lLfDiTJVVeP5DTIw4dpGgQ4o2F5mYYm4bvCkJul1nkWqAjq9s0pKojKFqdP7wRm/NX/Ye2ntYKwtlOhVvA4dwSM8QTn1uwi4jgI; Expires=Fri, 24 Nov 2017 11:37:10 GMT; Path=/")
  .timeout(0)
  .get();

这就是我的情况。这可能会有帮助。机器人探测器检测到我的浏览器代理并显示了著名的验证码请显示我不是机器人。首先,通过使用传递给网站的标题中的chrome插件显示cookie和userAgent。我只是复制了代码中显示的cookie和userAgent,每次检测到机器人时,我都会使用常驻浏览器手动绕过验证码

Doc = Jsoup.connect(URL_String)
  .userAgent("Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36")    
  .header("cookie","AWSALB=7ygHW4oBnXOkLMVFehmoTM8F1lLfDiTJVVeP5DTIw4dpGgQ4o2F5mYYm4bvCkJul1nkWqAjq9s0pKojKFqdP7wRm/NX/Ye2ntYKwtlOhVvA4dwSM8QTn1uwi4jgI; Expires=Fri, 24 Nov 2017 11:37:10 GMT; Path=/")
  .timeout(0)
  .get();

谢谢你的回答:当我尝试这段代码时,它给出了403HTTP错误获取URL。状态=403。然后我尝试添加ignoreHttpErrorstrue。代码运行时没有错误,但仍然给我机器人索引:/I我想我需要自己的cookie:但我不知道如何为自己获取cookie:谢谢你的回答:当我尝试此代码时,它给我403 HTTP错误获取URL。状态=403。然后我尝试添加ignoreHttpErrorstrue。代码运行时没有错误,但仍然给我机器人索引:/I我想我需要自己的cookie:但我不知道如何为自己获得一个: