【问题标题】:How to fix org.jsoup.HttpStatusException: HTTP error fetching URL. Status=503如何修复 org.jsoup.HttpStatusException:获取 URL 的 HTTP 错误。状态=503
【发布时间】:2017-06-13 19:25:58
【问题描述】:

我正在尝试通过以下代码下载我存储在谷歌学者列表中的研究论文,我已经测试了该程序 20 多次,大约一个小时前,我再次测试并弹出此错误。这段代码是我的 BS 最后一年项目的一部分,我需要解决这个问题。我用谷歌搜索了这个错误,我尝试了很多东西。我需要帮助来克服这一点。如果我更改我的 ip,这个问题会解决吗?

            Scanner s = new Scanner(new File("E:\\ref11.txt"));

    ArrayList<String> list = new ArrayList<String>();
    while (s.hasNextLine()){
        list.add(s.nextLine());
        {
            for (String Z : list)
            {
                System.out.println(Z);

            }
        }
    }
    //System.out.println("LISTZ:" +list);
    s.close();

        for (String query : list)    

    try {

       //var a= doc.replace(" ","+");

        Document doc = Jsoup
                .connect("https://scholar.google.com.pk/scholar?q=" +query).timeout(30000).followRedirects(true)
      .maxBodySize(1024*1024*3) 
                .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36")
                .get();
        String title = doc.title();
        System.out.println("title : " + title);
        Elements links = doc.select("div.gs_ggsd").select("a[href]");
        //Element  = doc.select("div.gs_ggs gs_fl").first();
        for (Element link : links) {
            //System.out.println("\nlink : " + link.attr("href"));
            URL website = new URL(link.attr("href"));
    ReadableByteChannel rbc = Channels.newChannel(website.openStream());
    FileOutputStream fos = new FileOutputStream("D:\\Referenced Papers\\" +title );
    fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
    } 
           // System.out.println("text : " + link.text());
        }
      /* ByteArrayOutputStream href = new ByteArrayOutputStream();



  PrintStream PS = new PrintStream(href);
    PrintStream old = System.out;
    System.setOut(PS);
    System.out.println("Here: " + href.toString());*/


        catch (IOException e) {
        e.printStackTrace();
    }

【问题讨论】:

    标签: java exception jsoup


    【解决方案1】:

    Google 会限制您对它们运行自动查询的速率。

    服务通常通过 IP 和限制来跟踪请求(此处显示为 503 Overloaded,有时以 429 Too Many Requests403 Forbidden 给出)或阻止这些请求。

    请注意遵守您所使用网站的服务条款。

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 2015-05-21
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多