Java получить веб-контент для многих веб-страниц
Так что раньше у меня была программа, которая заходила на множество веб-сайтов и получала часть исходного кода из тех веб-сайтов, которые мне нужны. Однако недавно веб-сайты были обновлены, чтобы теперь загружать информацию, которую я хочу, динамически, и я больше не получаю ее.
Я сделал другую версию своей программы, используя Selenium, которая работала, но это заняло слишком много времени, чтобы быть практичным, есть ли другой способ получить контент быстрее? Одна вещь, которую я заметил, это то, что Internet Explorer версии 11 по-прежнему загружен так, как это было раньше. Могу ли я получить исходный код именно оттуда?
То, как я получал это до того, как это сработало, было таким:
public static void main(String[] args) throws IOException{
String example = getSource("http://www.google.com");
System.out.println(example);
}
public static String getSource(String urlToGoTo) throws IOException
{
URL url = new URL(urlToGoTo);
URLConnection connection = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String inputLine;
StringBuilder a = new StringBuilder();
while ((inputLine = in.readLine()) != null)
a.append(inputLine);
in.close();
return a.toString();
}
Любые идеи приветствуются, я пытался найти способ заставить это работать надолго, учитывая, что это не должно быть слишком сложным.
1 ответ
Кажется, вы пытаетесь получить исходный код страницы. Есть метод для этого в селене. Вы можете использовать его вместо своего
getSource("http://www.google.com");
Создайте экземпляр WebDriver, перейдите по ссылке и получите исходный код страницы.
Фрагмент кода:
WebDriver driver = new FirefoxDriver();
driver.get("your URL");
String pageSource = driver.getPageSource();