PDA

View Full Version : سوال: جداسازی قسمت های خاصی از کد html در سی شارپ



partovinia
دوشنبه 13 مهر 1394, 18:18 عصر
سلام.من source code ی دارم از یک سایت که طبیعتا کد html هست .می خوام قسمتهای خاصی از اون رو جدا کنم و در خروجی برگردونم ...
به نظر شما باید چه کار کنم ؟ خودم فکر می کنم که باید از regulare expression ها استفاده کنم .آیا درسته ؟
میشه بنده رو یاری بفرمایید لطفا

nunegandom
دوشنبه 13 مهر 1394, 21:59 عصر
سلام توی RegularExpression این خیلی سخت میشه
توی همون پست قبلی جوابتون رو دادم حالا اگه نتونستید من باید برا خودم یکی دیگه بنویسم اگه نتونستید زود تر سورس رو مینویسم بهتوم میدم

partovinia
سه شنبه 14 مهر 1394, 20:31 عصر
سلام ممنونم .ولی من می تونم لینک ها رو جدا کنم ...در حقیقت می خوام تیتر ساین خبری و خلاصه خبری رو برگردونم....چه طوری ؟؟؟؟

mr_ayma
سه شنبه 14 مهر 1394, 20:53 عصر
سلام ، این مورد برای هر سایت فرق می کنه ، چون تگ های Html و CSS سایت ها باهم فرق می کنه ، حتی بعضی از سایت ها هستن تدابیری اتخاذ کردن که نشه به راحتی از طریق ربات سورس اشون رو خوند ، با وجود همه اینها در مورد خیلی از سایت ها ممکنه .. در مورد HtmlAgilityPack جست و جو کنید ، مثالهاش کمک اتون می کنه

nunegandom
چهارشنبه 15 مهر 1394, 01:24 صبح
شما تونستی دانلود کنی استرینگش رو؟ به من پارس اررور میده :| با webclient خوده مایکروسافت

partovinia
چهارشنبه 15 مهر 1394, 21:14 عصر
من string رو دانلود کردم.از web client هم استفاده کردم....

nunegandom
پنج شنبه 16 مهر 1394, 14:45 عصر
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using HtmlAgilityPack;
using System.IO;


namespace Tebyan
{
class Tabnak
{


List<Summary> tmp = new List<Summary>();
HtmlDocument htdoc = new HtmlDocument();
public void FillDocument()
{
string url = @"https://www.tabnak.ir/";
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
htdoc.LoadHtml(wc.DownloadString(url));



}




public List<Summary> GetSummary()
{
var findclasses = htdoc.DocumentNode.Descendants("div").Where(d =>
d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("lead1"));


foreach (var item in findclasses)
{
tmp.Add(new Summary { Line = item.Line, Text = item.InnerText });
}
return tmp;


}
public class Summary
{
public string Text { get; set; }
public int Line { get; set; }
}
}
}





private void Form1_Load(object sender, EventArgs e)
{
Tabnak tabnak = new Tabnak();
tabnak.FillDocument();
var result = tabnak.GetSummary();
foreach (var item in result)
{
textBox1.Text += item.Text + Environment.NewLine;
}
}

winner1
پنج شنبه 16 مهر 1394, 16:23 عصر
رفیق من از XmlDocument واسه این کار استفاده میکنم شاید خنده دار باشه ولی خط اول اون رو اصلاح میکنم پس متن یه متن xml تبدیل میشه و بعد تگ هارو میخونم اینکار و هزار بار انجام دادم

partovinia
پنج شنبه 16 مهر 1394, 19:18 عصر
سلام . قربان میشه کدی رو که نوشتین توضیح بدین بهم .

partovinia
پنج شنبه 16 مهر 1394, 19:38 عصر
متشکرم جناب winner .میشه یه لطفی بهم بکنید و منبع راجع به xml , این جور کد نویسی ها معرفی کنید.

nunegandom
پنج شنبه 16 مهر 1394, 19:53 عصر
سلام
var findclasses = htdoc.DocumentNode.Descendants("div").Where(d =>
d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("lead1"));


div اول ماله اینه که توی div رو بگرذه که شامل class باشه و اون کلاس شامل lead1 باشه
یه inspector با Chrome یا Firefox بزنی متوجه میشی

partovinia
پنج شنبه 16 مهر 1394, 20:09 عصر
inspector زدن یعنی چی ببخشید من خیلی مبتدی هستم ...

nunegandom
پنج شنبه 16 مهر 1394, 23:42 عصر
اینجا رو ببینین (http://www.mediafire.com/download/8zhl428g3qzziir/Inspect.rar)