Чтение предоставленных данных с веб-сайта - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь извлечь данные из нескольких веб-сайтов, используя JAVA.Я подключаюсь к веб-сайту, на котором есть таблица.Мне нужно извлечь значение из элементов td.

Дело в том, что: - когда я проверяю элемент в браузере, я вижу элемент и его значение в источнике.- Когда я просматриваю исходный код в браузере, я получаю JS.

Я использую URL из JAVA jdk 1.8, и когда запускается приведенный ниже код, я получаю неопубликованный JS вместо элементов, которые показывает сайт, когда вы посещаете его.

    import java.net.URL;
    import java.net.URLConnection;

     URL url = new URL("https://www.example.com");
    URLConnection conn = url.openConnection();
    conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB;     rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)");
    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
      while ((f = in.readLine()) != null) {
            builder.append(f);
        }
        alltext = builder.toString();
        if  (alltext.contains("<td colspan="1">Something</td>")) {
        ...Do something
        }

1 Ответ

0 голосов
/ 04 июня 2018

Причина в том, что элемент, который вы видели, был создан с помощью javascript, и вы не можете получить эти элементы напрямую.

Для того, чтобы получить данные элемента, вам нужно проанализировать их только после завершения JavaScriptсоздание элементов.

Два решения для вас:

  1. фантоми
  2. селен

Примечание: вам потребуется написать больше кода и затратить больше времени на это, в этом случае нелегкий выбор

...