Geek tričko zdarma Týden návrhu sw
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Využij až 80% slevu na kurzy Návrhu Software

Diskuze: načítanie zdrojového kódu stránky z url

Aktivity (2)
Avatar
3012
Člen
Avatar
3012:16.6.2018 10:48

Dobrý deň, chcel by som sa opýtať ako načítať v Jave zdrojový kód webovej stránky, viem že v Small Basicu bi sa to spravilo takto:

File.DeleteFile(Program.Directory + "\file")

url = "http://www.stranka.com"

zdroj = Network.GetWebPageContents(url)

File.AppendContents(Program.Directory + "\file", zdroj)

TextWindow.Write(file.ReadContents(Program.Directory + "\file"))

Za každú pomoc ďakujem.

 
Odpovědět 16.6.2018 10:48
Avatar
Odpovídá na 3012
Matúš Olejník:16.6.2018 12:40

Skús toto :)

/**
 *
 * @param webPageUrl for example "https://www.itnetwork.cz/"
 * @return source code of web page with url <code>webPageUrl</code>
 * @throws IOException
 */
public String getWebPageSourceCode(String webPageUrl) throws IOException {
    StringBuilder sb = new StringBuilder();

    System.setProperty("http.agent", "Chrome");

    URL url = new URL(webPageUrl);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    InputStreamReader inputStreamReader = new InputStreamReader(connection.getInputStream());

    try (BufferedReader br = new BufferedReader(inputStreamReader)) {
        String line;

        line = br.readLine();
        while (line != null) {
            sb.append(line);
            sb.append(System.lineSeparator());
            line = br.readLine();
        }

    } catch (IOException e) {
        e.printStackTrace();
    }
    return sb.toString();
}
Nahoru Odpovědět 16.6.2018 12:40
/* I am not sure why this works but it fixes the problem */
Avatar
3012
Člen
Avatar
3012:16.6.2018 13:24

ďakujem za odpoveď, no niesom si istý, či som kód mal vložiť do metódy main alebo do triedy, a stačilo k nemu doplniť premennú webPageUrl alebo ho ešte treba doplniť, posielam screenshot s mojim kódom, podčiarkuje totiž chyby.

 
Nahoru Odpovědět 16.6.2018 13:24
Avatar
Odpovídá na 3012
Matúš Olejník:16.6.2018 13:52

Vidím, že si asi začiatočník v Jave, možno by si si mohol prejsť zopár článkov tuto na itnetwork :) Ja som ti napísal funkciu ktorá potrebuje jeden parameter ktorým je url web stránky vo forme textu a vráti ti jej zdrojový kód tiež vo forme textu.

Ty si zobral túto funkciu a celú ju vložil u seba do ďalšej metódy main. Ak ju chceš použiť priamo v main metóde tak funkciu getWebPageSou­rceCode musíš vložiť mimo nej a musíš ju spraviť statickú, čiže zmeniť

public String getWebPageSourceCode(String webPageUrl) throws IOException {

na

public static String getWebPageSourceCode(String webPageUrl) throws IOException {

a v main metóde ju stačí zavolať takto

public static void main(String[] args){
    try {
        String webPageSourceCode = getWebPageSourceCode("https://www.itnetwork.cz/");
        System.out.println(webPageSourceCode);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Plus samozrejme pridať potrebné importy

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
Editováno 16.6.2018 13:53
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 16.6.2018 13:52
/* I am not sure why this works but it fixes the problem */
Avatar
3012
Člen
Avatar
3012:16.6.2018 13:55

ja som ju ešte skúšal vložiť do triedy takto:

 
Nahoru Odpovědět 16.6.2018 13:55
Avatar
3012
Člen
Avatar
3012:16.6.2018 13:55

viem totiž že by sa v jave malo programovať objektovo

 
Nahoru Odpovědět 16.6.2018 13:55
Avatar
3012
Člen
Avatar
3012:16.6.2018 14:02

Veľmy ďakujem, už to funguje, čo sa týka tých statickcých funkcií tak vlastne fungujú podobne ako v ObjetiveC

 
Nahoru Odpovědět 16.6.2018 14:02
Avatar
Odpovídá na 3012
Matúš Olejník:16.6.2018 14:05

To už neviem, ale som rád, že som pomohol :)

Nahoru Odpovědět 16.6.2018 14:05
/* I am not sure why this works but it fixes the problem */
Avatar
3012
Člen
Avatar
3012:16.6.2018 14:05

a pokiaľ ide o moje znalosti Javy tak sa učím z knihy Java bez předchozích znalostí, ktorú už mám prebranú a teraz sa doúčam grafické rozhranie z knihy Java grafické uživatelské prostředí a čeština

 
Nahoru Odpovědět 16.6.2018 14:05
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.