簡體   English   中英

如何在沒有在瀏覽器中打開頁面的情況下使用java單擊網頁上的超鏈接

[英]how do i click a hyperlink on a webpage using java without having the page open in browser

所以我試圖制作一個文件下載程序,將根據超鏈接說什么或被稱為下載文件如何點擊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);
    }

jSoup庫是一個HTML解析器/ scraper,但它不與網頁交互。 如果要單擊鏈接或以其他方式與網頁交互,則需要使用模擬Web瀏覽器的庫,例如HTMLUnit

例如,以下代碼將單擊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()方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM