Вытаскивание HTML с веб -страницы на Java
Вопрос
Я хочу вытащить весь файл исходного кода HTML с веб -сайта в Java (или Python или PHP, если на этих языках проще на этих языках). Я хочу только просмотреть HTML и сканировать его с помощью нескольких методов- не редактировать и не манипулировать им каким-либо образом, и я действительно хочу, чтобы я не написал его в новый файл, если нет другого пути. Есть ли какие -нибудь классы библиотеки или методы, которые это делают? Если нет, есть ли способ сделать это?
Решение
В Java:
URL url = new URL("http://stackoverflow.com");
URLConnection connection = new URLConnection(url);
InputStream stream = url.openConnection();
// ... read stream like any file stream
Этот код хорош для целей сценариев и внутреннего использования. Я бы посоветовался против использования его для производства. Он не обрабатывает тайм -ауты и неудачные соединения.
Я бы порекомендовал использовать Httpclient Library Для производства. Он поддерживает аутентификацию, обработку перенаправления, резьбу, объединение и т. Д.
Другие советы
В Python:
import urllib
# Get a file-like object for the Python Web site's home page.
f = urllib.urlopen("http://www.python.org")
# Read from the object, storing the page's contents in 's'.
s = f.read()
f.close()
Посмотри пожалуйста Обработка Python и HTML Больше подробностей.
Может быть wget или же скручивание от командной строки, чтобы принести дерево сайта в локальное дерево каталогов. Затем сделайте свое сканирование (на Java, Python, что угодно), используя локальную копию. Это должно быть проще, чем реализовать все скучные вещи, такие как обработка ошибок, анализ аргументов и т. Д.
Если вы хотите получить все страницы на сайте, Wget и Curl не знают, как собирать ссылки со страниц HTML. Альтернативой является использование с открытым исходным кодом..