PDA

View Full Version : جستجوی یک کلمه در یک صفحه از یک سایت



ali_fbi
چهارشنبه 24 مهر 1392, 22:26 عصر
سلام بنده کدی می خواهم که یک آدرس سایت بگیره و توی صفحه اصلی سایت دنبال یک کلمه بگرده و در صورتی که بود یک کاری انجام بدهد

با تشکر
دوست دار شما

drsina
پنج شنبه 25 مهر 1392, 01:21 صبح
کاری که میخوای بکنی ! خیلی سنگینه !!!
اول از همه و به نظر من ، سورس سایت رو دانلود کن !
system.net رو به نیم اسپیسات اضافه کن .
بعد با استفاده از وب کلاینت ، سورس رو دانلود کن .

WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadFileAsync(new Uri("http://www.site.com"), @"c:\users\rayan fam\ff.png");


حالا همه رو توو یه فایل بریز و اولین مکان وقوع ، کلمه ای رو که میخوای با IndexOf پیدا کن ، و ازش استفاده کن .

موفق باشی .

ali_fbi
پنج شنبه 25 مهر 1392, 01:33 صبح
یعنی راهی نیست که خود متن صفحه را پردازش کنه ؟

ali_fbi
پنج شنبه 25 مهر 1392, 01:34 صبح
کاری که میخوای بکنی ! خیلی سنگینه !!!
اول از همه و به نظر من ، سورس سایت رو دانلود کن !
system.net رو به نیم اسپیسات اضافه کن .
بعد با استفاده از وب کلاینت ، سورس رو دانلود کن .

WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadFileAsync(new Uri("http://www.site.com"), @"c:\users\rayan fam\ff.png");


حالا همه رو توو یه فایل بریز و اولین مکان وقوع ، کلمه ای رو که میخوای با IndexOf پیدا کن ، و ازش استفاده کن .

موفق باشی .



این قسمت برای چی هست ؟

@"c:\users\rayan fam\ff.png

drsina
پنج شنبه 25 مهر 1392, 01:38 صبح
این کد رو از پروژه های خودم بداشتم ، برا همین اینو یادم رفته عوض کنم .
این آدرس ذخیره سازی فایله .

samin_panahi
پنج شنبه 25 مهر 1392, 02:28 صبح
راحت ترین راهی که به ذهنم می رسه اینه که جستجو رو تو html صفحه انجام بدی (البته برای جستجوی کلمات فارسی راه خوبیه، برای کلمات انگلیسی چون ممکنه از اون کلمات تو کد صفحه هم استفاده شده باشه خوب نیست)
من این کار رو کردم:
اول یه تکست باکس گذاشتم برای وارد کردن آدرس و یه تکست باکس برای اینکه html صفحه رو بریزه توش(txt_html)
بعد یه تکست باکس گذاشتم که کلمه ای می خوام رو توش وارد کنم (Find_txt) و یه باتن (Find_btn) که با زدنش کلمه رو تو html جستجو کنه

اینم کد کلیک روی باتن / می تونی یا از for یا از if استفاده کنی
من هر دو رو گذاشتم

private void Find_btn_Click(object sender, EventArgs e)
{
string pattern = pattern = @"" + Find_txt.Text;
Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches(txt_html.Text);

for (int i = 0, l = matches.Count; i < l; i++)
{
//ba har bar peyda kardane kalame kari ro ke mikham anjam bede
}

if (matches.Count > 0)
{
//agar kalame vojud dasht kar ro anjam bede
}
}

ali_fbi
جمعه 26 مهر 1392, 21:25 عصر
راحت ترین راهی که به ذهنم می رسه اینه که جستجو رو تو html صفحه انجام بدی (البته برای جستجوی کلمات فارسی راه خوبیه، برای کلمات انگلیسی چون ممکنه از اون کلمات تو کد صفحه هم استفاده شده باشه خوب نیست)
من این کار رو کردم:
اول یه تکست باکس گذاشتم برای وارد کردن آدرس و یه تکست باکس برای اینکه html صفحه رو بریزه توش(txt_html)
بعد یه تکست باکس گذاشتم که کلمه ای می خوام رو توش وارد کنم (Find_txt) و یه باتن (Find_btn) که با زدنش کلمه رو تو html جستجو کنه

اینم کد کلیک روی باتن / می تونی یا از for یا از if استفاده کنی
من هر دو رو گذاشتم

private void Find_btn_Click(object sender, EventArgs e)
{
string pattern = pattern = @"" + Find_txt.Text;
Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches(txt_html.Text);

for (int i = 0, l = matches.Count; i < l; i++)
{
//ba har bar peyda kardane kalame kari ro ke mikham anjam bede
}

if (matches.Count > 0)
{
//agar kalame vojud dasht kar ro anjam bede
}
}




سلام عزیز این کار نمی کنه تست کردم . راه دیگه ای هست ؟

samin_panahi
جمعه 26 مهر 1392, 21:32 عصر
سلام عزیز این کار نمی کنه تست کردم . راه دیگه ای هست ؟
سلام
کد رو تست کردم
برای جستجوی کلمات فارسی موجود در یک صفحه ی وب به خوبی کار می کنه
شاید جایی رو اشتباه کردید
txt_html.Text همون تکست باکسیه که محتویاتش html صفحه ی مورد نظره جستجو کنی
Find_txt.Text همون تکست باکسیه که محتویاتش رو می خوای تو txt_html.Text

CsharpNevisi
جمعه 26 مهر 1392, 23:37 عصر
این چی ؟؟؟؟؟
using System.Web;
System.Net.WebClient a = new System.Net.WebClient();
a.Encoding = Encoding.UTF8;
textBox1.Text = a.DownloadString("http://www.otaghe16.blogfa.com/");
string Serchh = "کلمه مورد نظر";
for (Int32 i = 0; i <= textBox1.TextLength; i++)
{
if (textBox1.Text.Substring(i, Serchh.Length) == Serchh)
{
cc = true;
}
}