سؤال

بدون استخدام أي مكتبة خارجية، ما هي أبسط طريقة لجلب محتوى 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. يمكنك تشغيلها في متصفحك أيضًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top