java 解析页面的 URL 以使用 TagSoup 创建 DOM 时出现 IOException
java IOException when parsing a URL of a page for creating a DOM using TagSoup
使用以下 link 我正在尝试创建 URL 的 DOM 树(这是一个特定的 URL returns 这个异常) :
String url="http://www.kingfisher.org/";
Parser p = new Parser();
SAX2DOM sax2dom ;
org.w3c.dom.Node doc ;
p.setFeature(Parser.namespacesFeature, false);
p.setFeature(Parser.namespacePrefixesFeature, false);
sax2dom = new SAX2DOM(true);
p.setContentHandler(sax2dom);
p.parse(new InputSource(url));
doc = sax2dom.getDOM();
但是当我为此 URL 运行我的程序时,它给了我 p.parse(new InputSource(url));
处的异常,我不知道为什么。因为到目前为止它没有任何问题。
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.kingfisher.org/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1838)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
at org.ccil.cowan.tagsoup.Parser.getInputStream(Parser.java:510)
at org.ccil.cowan.tagsoup.Parser.getReader(Parser.java:487)
at org.ccil.cowan.tagsoup.Parser.parse(Parser.java:440)
at pageparsertest.PageParserTest.main(PageParserTest.java:92)
有什么提示吗?
如果您使用 HttpURLConnection,您应该能够访问来自 java 的网页请求。试试下面的代码:
String url = "http://www.kingfisher.org/";
URL uri = new URL(url);
HttpURLConnection httpcon = (HttpURLConnection) uri.openConnection();
httpcon.addRequestProperty("User-Agent", "Mozilla/4.76");
p.parse(new InputSource(httpcon.getInputStream()));
使用以下 link 我正在尝试创建 URL 的 DOM 树(这是一个特定的 URL returns 这个异常) :
String url="http://www.kingfisher.org/";
Parser p = new Parser();
SAX2DOM sax2dom ;
org.w3c.dom.Node doc ;
p.setFeature(Parser.namespacesFeature, false);
p.setFeature(Parser.namespacePrefixesFeature, false);
sax2dom = new SAX2DOM(true);
p.setContentHandler(sax2dom);
p.parse(new InputSource(url));
doc = sax2dom.getDOM();
但是当我为此 URL 运行我的程序时,它给了我 p.parse(new InputSource(url));
处的异常,我不知道为什么。因为到目前为止它没有任何问题。
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.kingfisher.org/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1838)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
at org.ccil.cowan.tagsoup.Parser.getInputStream(Parser.java:510)
at org.ccil.cowan.tagsoup.Parser.getReader(Parser.java:487)
at org.ccil.cowan.tagsoup.Parser.parse(Parser.java:440)
at pageparsertest.PageParserTest.main(PageParserTest.java:92)
有什么提示吗?
如果您使用 HttpURLConnection,您应该能够访问来自 java 的网页请求。试试下面的代码:
String url = "http://www.kingfisher.org/";
URL uri = new URL(url);
HttpURLConnection httpcon = (HttpURLConnection) uri.openConnection();
httpcon.addRequestProperty("User-Agent", "Mozilla/4.76");
p.parse(new InputSource(httpcon.getInputStream()));