ব্যবহারের সেরা জিনিস হ'ল এইচটিএমএলজিটিপ্যাক । পুনরুদ্ধার করা পৃষ্ঠা থেকে উপাদানগুলি নির্বাচনের জন্য আপনার প্রয়োজনীয়তার উপর নির্ভর করে আপনি ফিজার বা সিএসকিউয়ারি ব্যবহার করেও দেখতে পারেন । লিনকিউ বা রেগুকার এক্সপ্রেশনগুলি ব্যবহার করা ত্রুটিযুক্ত প্রবণতা, বিশেষত যখন এইচটিএমএলকে ত্রুটিযুক্ত হতে পারে, ক্লোজিং ট্যাগগুলি হারিয়ে যেতে পারে, বাচ্চাদের উপাদান থাকতে পারে ইত্যাদি when
আপনাকে পৃষ্ঠাটি এইচটিএমএল ডকুমেন্ট অবজেক্টে প্রবাহিত করতে হবে এবং তারপরে আপনার প্রয়োজনীয় উপাদানটি নির্বাচন করতে হবে।
var doc = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlNode.ElementsFlags["br"] = HtmlAgilityPack.HtmlElementFlag.Empty;
doc.OptionWriteEmptyNodes = true;
try
{
var webRequest = HttpWebRequest.Create(pageUrl);
Stream stream = webRequest.GetResponse().GetResponseStream();
doc.Load(stream);
stream.Close();
}
catch (System.UriFormatException uex)
{
Log.Fatal("There was an error in the format of the url: " + itemUrl, uex);
throw;
}
catch (System.Net.WebException wex)
{
Log.Fatal("There was an error connecting to the url: " + itemUrl, wex);
throw;
}
string testDivSelector = "//div[@id='test']";
var divString = doc.DocumentNode.SelectSingleNode(testDivSelector).InnerHtml.ToString();
[সম্পাদনা] আসলে, স্ক্র্যাপ। সবচেয়ে সহজ পদ্ধতি হ'ল ফিজারেলেক্স ব্যবহার করুন , মূল ফিজার প্রকল্পটির একটি আপডেট করা jQuery / CSS3- নির্বাচক প্রয়োগ।
কোডের নমুনা সরাসরি তাদের সাইট থেকে:
using HtmlAgilityPack;
using Fizzler.Systems.HtmlAgilityPack;
var web = new HtmlWeb();
var document = web.Load("http://example.com/page.html");
var page = document.DocumentNode;
foreach(var item in page.QuerySelectorAll("div.item"))
{
var title = item.QuerySelector("h3:not(.share)").InnerText;
var date = DateTime.Parse(item.QuerySelector("span:eq(2)").InnerText);
var description = item.QuerySelector("span:has(b)").InnerHtml;
}
আমি মনে করি না এটি এর চেয়ে সহজতর কোনও পেতে পারে।
Containsকল "যথেষ্ট ভাল" হতে পারে।