كيفية جلب HTML في جافا
-
09-06-2019 - |
سؤال
بدون استخدام أي مكتبة خارجية، ما هي أبسط طريقة لجلب محتوى HTML لموقع الويب إلى سلسلة؟
المحلول
أنا أستخدم هذا حاليًا:
String content = null;
URLConnection connection = null;
try {
connection = new URL("http://www.google.com").openConnection();
Scanner scanner = new Scanner(connection.getInputStream());
scanner.useDelimiter("\\Z");
content = scanner.next();
scanner.close();
}catch ( Exception ex ) {
ex.printStackTrace();
}
System.out.println(content);
ولكن لست متأكدا إذا كان هناك طريقة أفضل.
نصائح أخرى
قد عملت بشكل سليم معي:
URL url = new URL(theURL);
InputStream is = url.openStream();
int ptr = 0;
StringBuffer buffer = new StringBuffer();
while ((ptr = is.read()) != -1) {
buffer.append((char)ptr);
}
لست متأكدًا مما إذا كان الحل (الحلول) الأخرى المقدمة أكثر كفاءة أم لا.
انا غادرت للتو هذه المشاركة في موضوعك الآخر, ، على الرغم من أن ما لديك أعلاه قد يعمل أيضًا.لا أعتقد أن أيًا منهما سيكون أسهل من الآخر.يمكن الوصول إلى حزم Apache بمجرد استخدام import org.apache.commons.HttpClient
في الجزء العلوي من التعليمات البرمجية الخاصة بك.
يحرر:نسيت الرابط ;)
على الرغم من عدم وجود Vanilla-Java، سأقدم حلاً أبسط.استخدم رائع ;-)
String siteContent = new URL("http://www.google.com").text
إنها ليست مكتبة ولكنها أداة تسمى Curl مثبتة بشكل عام في معظم الخوادم أو يمكنك تثبيتها بسهولة في أوبونتو عن طريق
sudo apt install curl
ثم قم بإحضار أي صفحة html وقم بتخزينها في ملفك المحلي كمثال
curl https://www.facebook.com/ > fb.html
سوف تحصل على الصفحة الرئيسية html. يمكنك تشغيلها في متصفحك أيضًا.