PDA

View Full Version : چگونگی استفاده از اطلاعات یک وب سایت در برنامه C#



sgh_programer
چهارشنبه 01 آذر 1391, 10:53 صبح
با عرض سلام خدمت دوستان عزیز

من یه برنامه طلا فروشی نوشتم که میخوام توی برنامه از یه سایتی قیمت بروز طلا را بگیرم
به عکس زیر توجه کنید
95336
www.tgju.ir
مثلا من میخوام قیمت طلای 18 عیار را درون یه تکست باکس بریزم
دوستان اگه چنین چیزی امکان داره راهنماییم کنید

Sir-Programmer
چهارشنبه 01 آذر 1391, 11:09 صبح
سلام اگه تکست باکس باشه دوستمون اینجا (http://barnamenevis.org/showthread.php?369726-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D9%85%D9%82%D8%AF%D8%A7%D8%B1-%DB%8C%DA%A9-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D8%A7%D8%B2-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D9%87-%D9%81%D8%B1%D9%85-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87) یه Sample گذاشت ولی اگه TD یا Lable باشه نمی دونم دوستان کسی هست راهنمایی کنه

s3rv3r
چهارشنبه 01 آذر 1391, 11:30 صبح
میتونستی همونجا بپرسی عزیز.
بازم همون جریانه هیچ فرقی نداره یه پترن براش تعریف کن
ما با لیبل یا تکست باکس کاری نداریم ما فقط سورس اچ تی ام ال کار میکنیم

&nbsp;هر گرم طلای 18 عیار</td> <td class='row2'><font color='00FF1E'>1,106,930 <

sgh_programer
چهارشنبه 01 آذر 1391, 12:00 عصر
میتونستی همونجا بپرسی عزیز.
بازم همون جریانه هیچ فرقی نداره یه پترن براش تعریف کن
ما با لیبل یا تکست باکس کاری نداریم ما فقط سورس اچ تی ام ال کار میکنیم

&nbsp;هر گرم طلای 18 عیار</td> <td class='row2'><font color='00FF1E'>1,106,930 <

دوست عزیز من از این کد استفاده کردم اما هیچ جوابی نگرفتم

using (System.Net.WebClient wc = new System.Net.WebClient())
{
string HTML=textBox1.Text;
HttpWebRequest webRequest;
HttpWebResponse webResponse;
webRequest = (HttpWebRequest)WebRequest.Create("http://www.tgju.ir");
webResponse = (HttpWebResponse)webRequest.GetResponse();
using (Stream strmresponse = webResponse.GetResponseStream())
{
using (StreamReader reader = new StreamReader(strmresponse, Encoding.UTF8))
{
HTML += reader.ReadToEnd();
}
}

var pattern = "&nbsp;هر گرم طلای 18 عیار</td> <td class='row2'><font color='00FF1E'>1,106,930 >";
var result = Regex.Match(HTML, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
while (result.Success)
{
textBox2.Text += result.Groups[1].ToString() + "\r\n";
result = result.NextMatch();
}
}

s3rv3r
چهارشنبه 01 آذر 1391, 12:08 عصر
خب پترن رو باید عوض کنی
Reqular Expression برای اینه که چیزی ما دنبالشیم تو یه متن پیدا کنه
برای اینکار ما پترنی تعریف میکنیم تا چیزی که شبیه با خواسته ما هستش رو پیدا کنه .



<font color='00FF1E'>(?<1>[^/\"]*)


زحمت دقیق کردن پترن برای چیزی که میخوایی با شما

sgh_programer
چهارشنبه 01 آذر 1391, 12:17 عصر
من پترن رو به این شکل تعریف کردم

var pattern = "&nbsp;هر گرم طلای 18 عیار</td><td class='row2'><font color='00FF1E'>(?<1>[^/\"]*)";


اما هیچ جوابی نگرفتم

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

s3rv3r
چهارشنبه 01 آذر 1391, 12:31 عصر
ببین درسته؟
شرمنده اخه تو نت پد مینویسم برنامه ندارم. یکم دستکاری میخواد تا جوابی که میخوایی بگیری.


string HTML="";
int Goldid=0;
HttpWebRequest webRequest;
HttpWebResponse webResponse;
webRequest = (HttpWebRequest)WebRequest.Create("http://www.tgju.ir");
webResponse = (HttpWebResponse)webRequest.GetResponse();
using (Stream strmresponse = webResponse.GetResponseStream())
{
using (StreamReader reader = new StreamReader(strmresponse, Encoding.UTF8))
{
HTML += reader.ReadToEnd();
}
}

var pattern = "<td class='row2'><font color='00FF1E'>(?<1>[^/\<]*)";
var result = Regex.Match(HTML, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
while (result.Success)
{

if(Goldid=3)
{
textBox2.Text += result.Groups[1].ToString() + "\r\n";
break;
}
Goldid++;
result = result.NextMatch();
}

Sir-Programmer
چهارشنبه 01 آذر 1391, 22:05 عصر
سلام کد فوق این ارور رو میده

Error 1 Unrecognized escape sequence

danialafshari
پنج شنبه 02 آذر 1391, 01:50 صبح
var pattern = "<td class='row2'><font color='00FF1E'>(?<1>[^/\<]*)";
به این شکل تغییر بده ببین حل میشه
var pattern = @"<td class='row2'><font color='00FF1E'>(?<1>[^/\<]*)";

Sir-Programmer
پنج شنبه 02 آذر 1391, 09:50 صبح
ارور بعدی

Error 1 Cannot implicitly convert type 'int' to 'bool'

aslan
پنج شنبه 02 آذر 1391, 10:33 صبح
if(Goldid==3)

Farshid007
پنج شنبه 02 آذر 1391, 11:13 صبح
using (System.Net.WebClient wc = new System.Net.WebClient())
{
string Result = "";
string HTML = "";
string Searcher = "هر گرم طلای 18 عیار";
HttpWebRequest webRequest;
HttpWebResponse webResponse;
webRequest = (HttpWebRequest)WebRequest.Create("http://www.tgju.ir");
webResponse = (HttpWebResponse)webRequest.GetResponse();
using (Stream strmresponse = webResponse.GetResponseStream())
{
using (StreamReader reader = new StreamReader(strmresponse, Encoding.UTF8))
{
HTML += reader.ReadToEnd();
}
}
string[] lines = HTML.Split('\n');
for (int i = 0; i <= lines.Length - 1; i++)
{
if (lines[i].Contains("&nbsp;"+Searcher))
{
string var = lines[i + 1];
if(var=="")break;
foreach (string b in var.Split('>'))
{
if (!(b.Length > 0)) break;
if (char.IsDigit(char.Parse(b.Substring(0,1))))
{


Result = b.Split('<')[0];
MessageBox.Show(Searcher+":"+Result); break;

}
}

break;
}

}
if (Result == "")
{
MessageBox.Show("نتیجه ای یافت نشد");
}
}

به جای searcher هر کدوم از ایتم های تو سایت رو می تونید بزارید و نتیج می افته تو Result

Sir-Programmer
پنج شنبه 02 آذر 1391, 14:10 عصر
سلام دوستان
واسه پر کردن دو تا تکست باکس Gmail و زدن کلید Login باشید چیکار کرد ؟

Sir-Programmer
شنبه 04 آذر 1391, 15:50 عصر
سلام دوستان
میخوام وقتی تو این سایت http://www.ip-tracker.org/locator/ip-lookup.php?YourIp ای پی خودمو زدم بعد تو یه فرم در برنامه مشخصات زیر رو تو فرم برنامه نمایش بدم باید چیکار کنم ؟
IP Lookup Location For IP Address: 5.22.34.134Continent:Asia (AS)Country:Iran, Islamic Republic of http://www.ip-tracker.org/images/ip-flags/ir.png (IR)Capital:TehranState:UnknownCity:UnknownISP:Asi aTech Inc.Organization:Mazandaran DSL Broadband ServiceTime zone:Asia/Tehran

samadblaj
شنبه 04 آذر 1391, 16:01 عصر
سلام دوستان
واسه پر کردن دو تا تکست باکس Gmail و زدن کلید Login باشید چیکار کرد ؟

سلام webbrowser رو با آدرس gmail قرار بده و کد زیر رو توی یه دکمه بنویس قتی صفحه load کامل شد روی دکمه کلیک کن.

HtmlDocument doc = this.webBrowser1.Document;
doc.GetElementById("Email").SetAttribute("Value", comboBox1 .Text);
doc.GetElementById("passwd").SetAttribute("Value", textBox2.Text);
webBrowser1.Document.GetElementById("signIn").InvokeMember("click");

samadblaj
شنبه 04 آذر 1391, 16:03 عصر
سلام دوستان
واسه پر کردن دو تا تکست باکس Gmail و زدن کلید Login باشید چیکار کرد ؟

سلام webbrowser رو با آدرس gmail قرار بده و کد زیر رو توی یه دکمه بنویس قتی صفحه load کامل شد روی دکمه کلیک کن.

HtmlDocument doc = this.webBrowser1.Document;
doc.GetElementById("Email").SetAttribute("Value", comboBox1 .Text);
doc.GetElementById("passwd").SetAttribute("Value", textBox2.Text);
webBrowser1.Document.GetElementById("signIn").InvokeMember("click");

salehsam
یک شنبه 09 تیر 1392, 14:34 عصر
ما نیز منتظر:افسرده: