所以我试图制作一个文件下载程序,根据超链接所说的内容下载文件,或者如何在java中点击超链接?
我试图通过打开网页找到最简单的方法。
我也试图在没有java脚本的情况下这样做,因为我不控制网站我只想从它下载。
这是我一直在尝试但我一直在收到ERROR 403.我该如何解决这个问题?
注意:这确实使用了JSoup库。
Document doc = Jsoup.parse(new URL(yourURLhere), 2000);
Elements resultLinks = doc.select("a");
System.out.println("number of links: " + resultLinks.size());
for (Element link1 : resultLinks) {
System.out.println();
String href = link1.attr("href");
System.out.println("Title: " + link1.text());
System.out.println("Url: " + href);
}
答案 0 :(得分:3)
jSoup库是一个HTML解析器/ scraper,但它不与网页交互。如果要单击链接或以其他方式与网页交互,则需要使用模拟Web浏览器的库,例如HTMLUnit。
例如,以下代码将单击" Home" HTMLUnit主页上的链接。此代码根据name
属性搜索特定锚点(HTML链接),但还有其他方法可通过各种条件搜索其他类型的元素。有关详细信息,请参阅文档。
public void testHomePage() throws Exception {
final WebClient webClient = new WebClient();
final URL url = new URL("http://htmlunit.sourceforge.net");
final HtmlPage page = (HtmlPage)webClient.getPage(url);
HtmlAnchor anchor = page.getAnchorByName("Home");
anchor.click();
}
如果您想使用jSoup的分析功能,您仍然可以将HTMLUnit与jSoup结合使用。在HTMLUnit中加载页面后,您可以将HTML作为字符串传递给jSoup的parse()
方法。