Vánoční nadílka Vánoční nadílka
Vánoční akce! Daruj lepší budoucnost blízkým nebo sobě. Až +50 % zdarma na dárkové poukazy. Více informací

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

Java Java načítanie zdrojového kódu stránky z url American English version English version

Aktivity (1)
Avatar
3012
Člen
Avatar
3012:16. června 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. června 10:48
Avatar
Odpovídá na 3012
Matúš Olejník:16. června 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. června 12:40
/* I am not sure why this works but it fixes the problem */
Avatar
3012
Člen
Avatar
3012:16. června 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. června 13:24
Avatar
Odpovídá na 3012
Matúš Olejník:16. června 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. června 13:53
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 16. června 13:52
/* I am not sure why this works but it fixes the problem */
Avatar
3012
Člen
Avatar
3012:16. června 13:55

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

 
Nahoru Odpovědět 16. června 13:55
Avatar
3012
Člen
Avatar
3012:16. června 13:55

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

 
Nahoru Odpovědět 16. června 13:55
Avatar
3012
Člen
Avatar
3012:16. června 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. června 14:02
Avatar
Odpovídá na 3012
Matúš Olejník:16. června 14:05

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

Nahoru Odpovědět 16. června 14:05
/* I am not sure why this works but it fixes the problem */
Avatar
3012
Člen
Avatar
3012:16. června 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. června 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.