কোন HTML পার্সার সেরা? [বন্ধ]


194

আমি অনেক পার্সার কোড করি। এখনও অবধি, আমি পার্সিং এবং ব্রাউজার অটোমেশনের জন্য এইচটিএমএলউইন্ট হেডলেস ব্রাউজার ব্যবহার করছিলাম।

এখন, আমি উভয় কাজ পৃথক করতে চাই।

যেহেতু আমার কাজের ৮০% কেবল পার্সিংয়ের সাথে জড়িত, তাই আমি হালকা এইচটিএমএল পার্সার ব্যবহার করতে চাই কারণ এইচটিএমএলইনাইটে প্রথমে কোনও পৃষ্ঠা লোড করতে, তারপরে উত্সটি পাওয়ার পরে এবং এটি বিশ্লেষণ করতে অনেক সময় লাগে।

আমি জানতে চাই কোন HTML পার্সারটি সেরা। পার্সারটি এইচটিএমএল ইউনিত পার্সারের কাছাকাছি থাকলে আরও ভাল।


সম্পাদনা করুন:

সর্বোপরি, আমি কমপক্ষে নিম্নলিখিত বৈশিষ্ট্যগুলি চাই:

  1. গতি
  2. কোনও "এইচটিএমএল" উপাদানটি তার "আইডি" বা "নাম" বা "ট্যাগের ধরণ" দ্বারা সনাক্ত করা সহজ।

এটি নোংরা এইচটিএমএল কোডটি পরিষ্কার না করলে আমার পক্ষে ঠিক হবে। আমার কোনও HTML উত্স পরিষ্কার করার দরকার নেই। আমার এইচটিএমএল উপাদানগুলি জুড়ে সরানো এবং সেগুলি থেকে ডেটা সংগ্রহের খুব সহজ উপায় দরকার need


2
আপনি কীভাবে "সেরা" বলতে চাইছেন? আপনি কি গতি বলতে চান, বর্তমান বাস্তবায়ন থেকে উত্তরণে স্বাচ্ছন্দ্য, ডাব্লু 3 সি স্ট্যান্ডার্ডের আনুগত্য, আমি অন্য কিছু ভাবিনি? আপনার প্রশ্নটি গতি বোঝায়, তবে এটি উন্নয়নের স্থানান্তরের সময়কেও বোঝায়। কিছু স্পষ্টতা অন্যকে ভাল পার্সারগুলির সুপারিশ করতে সহায়তা করতে পারে যা আপনার প্রয়োজনগুলি আরও ভাল ফিট করে।
অ্যাপার্কিনস

2
আপনার বক্তব্য 'আমি প্রচুর পার্সার কোড করি' প্রশ্নের সাথে মিলছে বলে মনে হয় না। আপনার অর্থ কি 'আমার এইচটিএমএল পার্সার ব্যবহার করা দরকার?'
ফাঁকা 17

11
আমি মনে করি এই প্রশ্নটি "গঠনমূলক নয়" ঘনিষ্ঠ কারণে অব্যাহতি পাওয়ার জন্য যথেষ্ট নির্দিষ্ট specific
বিল করুন

9
দয়া করে এটি পুনরায় খুলতে ভোট দিন। এটি যথেষ্ট নির্দিষ্ট এবং এটি বন্ধ করা উচিত নয়।
এজেড_

3
হ্যাঁ, এসও-তে থাকা কিছু লোক পবিত্র যুদ্ধের বিরুদ্ধে "সেরা" প্রশ্নগুলির বিরুদ্ধে লড়াই করে। খুব বিরক্তিকর. উত্তরের ভোটদান পরিষ্কারভাবে এই প্রশ্নের কার্যকারিতা নির্দেশ করে।
ব্যবহারকারী 1050755

উত্তর:


396

স্ব প্লাগ: আমি সবেমাত্র একটি নতুন জাভা এইচটিএমএল পার্সার প্রকাশ করেছি: jsoup । আমি এখানে এটি উল্লেখ করেছি কারণ আমি মনে করি এটি আপনার পরে যা করবে তা করবে।

এর দলীয় কৌশলটি সিএসএস নির্বাচনকারী উপাদানগুলি অনুসন্ধানের সিনট্যাক্স, যেমন:

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
Element head = doc.select("head").first();

দেখুন নির্বাচক আরও তথ্যের জন্য javadoc।

এটি একটি নতুন প্রকল্প, সুতরাং উন্নতির জন্য যে কোনও ধারণা খুব স্বাগত!


15
এই জিনিসটি দুর্দান্ত, এবং আমি সিএসএস নির্বাচক সমর্থন পছন্দ করি। আমি সবেমাত্র জানি আমি একটি জাভা গ্রন্থাগার ব্যবহার করছি। :-)
উইলিয়াম পিট্রি

17
এই সমর্থন বন্ধ করবেন না দয়া করে। সার্ভার-সাইড জাভা ব্যবহার করে এইচটিএমএলটি পার্স করার জন্য আমাদের ঠিক এটি দরকার ছিল! এটা সত্যিই দারুন! আমি মাত্র দু'ঘন্টার মধ্যে একটি প্রক্সি তৈরি করেছি যা মূল সার্ভারে পুরো পথ তৈরি করতে সমস্ত src এবং href লিঙ্কগুলিকে সংশোধন করে।
jmort253

7
আমি এটি একবার তাকিয়েছি। আমি এর ইন্টারফেস এবং ডকুমেন্টেশন পছন্দ করি। এটা বোঝা সহজ। :)
পান্না

5
চমৎকার কাজ! 10 মিনিটেরও কম সময়ে জসপ আপ করে চলেছে।
ইন্দ্রেেক কিউ

10
অবিশ্বাস্য, এটি খুব অসুস্থ। আমি কয়েক মিনিটের মধ্যে একটি HTML পৃষ্ঠা প্রসেস করতে সক্ষম হয়েছি। এই মহান কাজের জন্য আপনাকে অনেক ধন্যবাদ।
মাইকেল-ও

32

আমি এ পর্যন্ত সেরা দেখা হ'ল এইচটিএমএল ক্লিনার :

এইচটিএমএল ক্লিনারটি জাভায় লিখিত ওপেন সোর্স এইচটিএমএল পার্সার। ওয়েবে পাওয়া এইচটিএমএল সাধারণত নোংরা, দুর্বৃত্ত এবং আরও প্রক্রিয়াজাতকরণের জন্য অনুপযুক্ত। এই জাতীয় নথিগুলির যে কোনও গুরুতর ব্যবহারের জন্য, প্রথমে জগাখিচুড়ি পরিষ্কার করা উচিত এবং ট্যাগ, বৈশিষ্ট্য এবং সাধারণ পাঠ্যের ক্রমটি আনতে হবে। প্রদত্ত এইচটিএমএল ডকুমেন্টের জন্য, এইচটিএমএল ক্লিনার পৃথক উপাদানগুলিকে পুনর্বিন্যাস করে এবং সুগঠিত এক্সএমএল উত্পাদন করে। ডিফল্টরূপে, এটি অনুরূপ নিয়ম অনুসরণ করে যা বেশিরভাগ ওয়েব ব্রাউজারগুলি ডকুমেন্ট অবজেক্ট মডেল তৈরি করতে ব্যবহার করে। যাইহোক, ব্যবহারকারী ট্যাগ ফিল্টারিং এবং ব্যালেন্সিংয়ের জন্য কাস্টম ট্যাগ এবং নিয়ম সেট সরবরাহ করতে পারে।

এইচটিএমএল ক্লিনার দিয়ে আপনি এক্সপথ ব্যবহার করে যে কোনও উপাদান সনাক্ত করতে পারেন।

অন্যান্য এইচটিএমএল পার্সারের জন্য এই এসও প্রশ্নটি দেখুন


1
আপনাকে প্রক্সিটি নিজেই পরিচালনা করতে হবে, তারপরে পরিবর্তে আপনার স্ট্রিমটি প্রক্রিয়াকরণের জন্য এইচটিএমএল ক্লিনার ব্যবহার করতে হবে। => এটি সুবিধাজনক নয়। T__T
কিডনান 1991

এইচটিএমএলটিডি কি এখানে আরও ভাল বিকল্প হবে না? html-tidy.org
ট্রয় উইথথফুট

1
Similar rules that the most of web browsers use- এটি খুব বিশ্বাসযোগ্য নয়
pguardiario

9

আমি HTML5 পার্সিং অ্যালগরিদমের উপর ভিত্তি করে Validator.nu এর পার্সার পরামর্শ দিচ্ছি । এটি 2010-05-03 থেকে মোজিলায় ব্যবহৃত পার্সার


2
আমি এটি চেষ্টা করে দেখেছি এবং এটি ব্যবহার করা খুব শক্ত। খুব কম ডকুমেন্টেশন / সমর্থন।
রায়ান শিলিংটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.