Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSoup:org.JSoup.HttpStatusException:HTTP错误获取URL。状态=503,用户代理不';行不通_Java_Jsoup - Fatal编程技术网

Java JSoup:org.JSoup.HttpStatusException:HTTP错误获取URL。状态=503,用户代理不';行不通

Java JSoup:org.JSoup.HttpStatusException:HTTP错误获取URL。状态=503,用户代理不';行不通,java,jsoup,Java,Jsoup,我正在尝试连接到,从中获取链接,然后访问循环中的每个链接,并从中存储一些信息。但是,我得到了一个org.jsoup.HttpStatusException:HTTP错误获取URL。Status=503尝试访问内部站点时出错(在getAddress()函数内部)。我尝试设置超时和更改用户代理,但它根本不起作用。不过,单独访问其中一些站点确实有效 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nod

我正在尝试连接到,从中获取链接,然后访问
循环中的每个链接,并从中存储一些信息。但是,我得到了一个
org.jsoup.HttpStatusException:HTTP错误获取URL。Status=503尝试访问内部站点时出错(在
getAddress()函数内部)。我尝试设置超时和更改用户代理,但它根本不起作用。不过,单独访问其中一些站点确实有效

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.ArrayList;


public class Parser {
    public static void main(String[] args) throws IOException {
        String url="http://www.patriarchia.ru/db/organizations/";
        String homeUrl="http://www.patriarchia.ru";


        Document document = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36").get();
        Elements links = document.getElementsByClass("news");

        ArrayList<Company> companies=new ArrayList<Company>();
        int i=1;

        for (Element link : links) {
             Company companyCopy=new Company(link.text());

            Element title = link.getElementsByClass("title").get(0).getElementsByTag("a").get(0);
            String siteUrl=title.attr("href");

            companyCopy.setSite(homeUrl+siteUrl);


            getAddress(companyCopy.getSite());

            i++;
        }
    }

    public static String getAddress(String url)  throws IOException {
            Document document = Jsoup
                    .connect(url)
                    .ignoreContentType(true)
                    .userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0").get();
            Elements dts = document.getElementsByClass("dt");
           Element dd;

        for (Element dt: dts)  {
               System.out.println(dt.text());
        }

        return "";
    }

}
import org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
导入org.jsoup.nodes.Element;
导入org.jsoup.select.Elements;
导入java.io.IOException;
导入java.util.ArrayList;
公共类解析器{
公共静态void main(字符串[]args)引发IOException{
字符串url=”http://www.patriarchia.ru/db/organizations/";
字符串homeUrl=”http://www.patriarchia.ru";
Document Document=Jsoup.connect(url.userAgent)(“Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/41.0.2228.0 Safari/537.36”).get();
元素链接=document.getElementsByClass(“新闻”);
ArrayList公司=新的ArrayList();
int i=1;
用于(元素链接:链接){
Company companyCopy=新公司(link.text());
元素标题=link.getElementsByClass(“标题”).get(0.getElementsByTag(“a”).get(0);
字符串siteUrl=title.attr(“href”);
companyCopy.setSite(homeUrl+siteUrl);
getAddress(companyCopy.getSite());
i++;
}
}
公共静态字符串getAddress(字符串url)引发IOException{
Document=Jsoup
.connect(url)
.ignoreContentType(true)
.userAgent(“Mozilla/5.0(Windows NT 6.1;Win64;x64;rv:25.0)Gecko/20100101 Firefox/25.0”).get();
元素dts=document.getElementsByClass(“dt”);
元素dd;
用于(元素dt:dts){
System.out.println(dt.text());
}
返回“”;
}
}
我真的需要一些帮助,因为我不知道还能做什么。更改超时长度似乎也没有帮助。我欢迎任何意见和建议


PS不管语言如何,链接都在主页上,这才是最重要的。

我已经试着运行了你的代码(嗯,部分代码-获取URL并提取
链接
元素),一切都很顺利-我得到了586个元素的列表。我使用了与您相同的用户代理。@TDG这很奇怪……我试着运行您的代码(嗯,部分代码-获取URL并提取
链接
元素),一切正常-我得到了586个元素的列表。我使用了和你相同的用户代理。@TDG这太奇怪了。。。