الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Html-code Parsing المساعدة في ايجاد مكتبة تقرأ كودhtml من الانترنت

مغلق
بدأه kousai في 6 ديسمبر 2008 · 5 رد · 757 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تحياتي للجميع

عندي استفسار وهو كيف اتمكن من سحب معلومات معينة من كود HTML مع مراعاة ان نوع المعلومات مقصور على (int , double , String)

هل يوجد مكتبة يمكن استخدامها لهدا الغرض

وحتى اتمكن من ايصال الفكرة بشكل جيد سأقوم بشرح مااريده بالتفصيل

لدي مشروع برمجة سوفت لجهاز يستطيع قياس درجة الحرارة والضغط الجوي , ومطلوب مني ايضا مراقبة درجة الحرارة والضغط الجوي من مصدر الكتروني (Internet-Site)

وسحب هده المعلومات ومقارنتها مع المعلومات التي قاسها الجهاز .

هل يوجد مكتبة خاصة بالجافا تمكنني من الحصول على المطلوب HTML Parsing ؟؟؟

شكرا جزيلا وكل عام وانتم بألف خير

#2

نعم يوجد كلاسات مخصصه :

javax.swing.text.html.HTMLEditorKit

javax.swing.text.MutableAttributeSet

javax.swing.text.html.HTML

أنظر هنا للمزيد :

HTML Parsing

ويمكن القيام بالعمليه بشكل يدوي بدون الحاجه لهذه الكلاسات ،، يوجد موضوع مشابه أيضا وقد تعرض الأخوه لعده طرق ، يمكنك استخدام خاصيه البحث ، وسأضيفه لو وجدته لأنه مضى عليه وقت ..

بالتوفيق ،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#3

شــــــــــــكرا كتيــــــــر كتيــــــــــر

رح جرب استخدمهون وازا واجهتني مشاكل رح ارجع اكتب

#4

شـــــــــــكرا كتير اخي Wajdy Essam

انا جربت كود من الموضوع اللي عطيتني ياه وفادني كتير وماني عرفان كيف بدي اتشكرك

بس عن طريقة الكلاسات اللي عملتها عم احصل على كل شي موجود بالصفحة URL

في امكانية اني احصل بس على معلومات معينة؟

لحتى اشرح كل شي بصورة ادق

انا عم ادخل على صفحة خاصة بالارصاد الجوية بتعطيني كل شي عن الجو ودرجة الحرارة ونسبة الرطوبة والتنبؤ بالحالة الجوية وكتير امور غيرهون

بس انا مابفيدني من كل هالمعلومات غير درجات الحرارة كل ساعة بساعتها

في امكانية الحصول فقط على درجات الحرارة دون الحصول على باقي المعلومات

انا فكرت اني احفظ المعلومات المرجعة على شكل ملف نصي txt واعمل بحث بهالملف واسحب بس اسم المدينة ودرجة الحرارة

احفظ درجة الحرارة ب vector واسم المدينة ب vector واعمل طباعة او ارجاع لهل المعلومات فقط

سؤالي هلق ؟؟

اللي انا عم فكر فيه لساتني مو مجربو وماعندي الخبرة ازا بقدر اوصل لغايتي عن طريقة هالفكرة او ازا بالاصل الفكرة قابلة للتطبيق بالجافا ؟

ياريت اللي عندو اي فكرة يساعدني وشكرا لكم جزيلا

كل عام وانتم بألف خــــــــــير

#5

لقد تمكنت من حفظ المعلومات على شكل ملف نصي txt

 

 package PTest;


import javax.swing.text.html.HTMLEditorKit;


public class GetParser extends HTMLEditorKit

{

/**

* 

*/

private static final long serialVersionUID = 1L;


public HTMLEditorKit.Parser getParser()

{

return super.getParser();

}

}

 

package PTest;

import java.io.IOException;
import java.io.Writer;

import javax.swing.text.MutableAttributeSet;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLEditorKit;


public class TagHandler extends HTMLEditorKit.ParserCallback
{
  private Writer writer;

	 public TagHandler (Writer w )
	 {
		 writer = w;
	 }

	 public void handleText ( char text[] , int position )
	 {
		 try
		 {
			 writer.write(text);
			 writer.flush();
		 }
		 catch (IOException e)
		 {
			 e.printStackTrace();
		 }
	 }

	 public void handleStartTag ( HTML.Tag tag , MutableAttributeSet attribute , int poisiotn )
	 {
		 try
		 {
			 if ( tag.breaksFlow())
			 {
				 writer.write("\n");

			 }
			/* else if ( tag.isBlock() )
			 {
				 writer.write("\n");
				 writer.write("\n");
			 }
			 else
				 writer.write(' ');*/

		 }
		 catch (IOException e)
		 {
			 e.printStackTrace();
		 }
	 }

	 public void handleEndTag ( HTML.Tag tag , MutableAttributeSet attribute , int poisiotn )
	 {
		 try
		 {
			 if ( tag.breaksFlow())
			 {
				 writer.write("\n");
			 }
			 else if ( tag.isBlock() )
			 {
				 writer.write("\n");
				 writer.write("\n");
			 }
		 }
		 catch (IOException e)
		 {
			 e.printStackTrace();
		 }
	 }

}

package PTest;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.net.URL;

import javax.swing.text.html.HTMLEditorKit;


public class Demo
{
	public static void main (String args[])
	{	 
	 File file = new File("C:/java.txt");

	 try {

	 System.setOut(new PrintStream(new FileOutputStream(file,true)));

	 } catch (FileNotFoundException e) {

	 e.printStackTrace();

	 }

		try
		{
			GetParser kit = new GetParser();
			HTMLEditorKit.Parser parser = kit.getParser(); 

			TagHandler th = new TagHandler( new OutputStreamWriter(System.out));

			URL url = new URL("http://www.wetteronline.de/cgi-bin/cgiakttab?TYP=temperatursyn&ART=tabelle&LANG=de&JJ=2008&MM=12&TT=09&TIME=1800&KEY=DL&SORT=1");
			InputStream in = new BufferedInputStream( url.openStream() );
			InputStreamReader r = new InputStreamReader(in);

			parser.parse(r,th,true);

		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}

لقد تمكنت هكذا من حفظ المعلومات على شكل نص ولكن للاسف طريقة الحفظ غير مرتبة اي ان المعلومات تطبع على console سطر تلوى الاخر ولكنها تحفط ضمن النص دون ترتيب وكأنها على سطر واحد

هل يمكنني ان اتحكم في طريقة الحفظ save وهل يمكن حماية الملف من الكتابة عليه مرة اخرى لانني عندما اريد تشغيل البرنامج يتم التعديل على الملف النصي بالكتابة عليه مرة اخرى

java.zip

#6
اقتباس
لقد تمكنت هكذا من حفظ المعلومات على شكل نص ولكن للاسف طريقة الحفظ غير مرتبة اي ان المعلومات تطبع على console سطر تلوى الاخر ولكنها تحفط ضمن النص دون ترتيب وكأنها على سطر واحد

هل يمكنني ان اتحكم في طريقة الحفظ save وهل يمكن حماية الملف من الكتابة عليه مرة اخرى لانني عندما اريد تشغيل البرنامج يتم التعديل على الملف النصي بالكتابة عليه مرة اخرى

لم أفهم المشكله ، هل يمكن أن توضح أكثر ..

هناك مواقع تعطيك ملفات XML وتقوم بعمل parse لها لكي تستخرج المعلومات وهي أسهل بكثيير من HTML parse ، لما لا تلقى نظره عليها ، مثل :

http://www.weather.com/services/xmloap.htm

بالتوفيق :) .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

هذا الموضوع مغلق.

مواضيع مشابهة