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这太奇怪了。。。