PDA

View Full Version : استخراج داده از سایت ها



programerinfonet
شنبه 21 اردیبهشت 1392, 07:57 صبح
سلام دوستان
من میخوام یه برنامه بنویسم که تمام آدرس های ایمیل موجود در یک یا چند سایت رو برای من لیست کنه . اما نمی دونم باید از کچا شروع کنم
اگه میشه منو راهنمایی کنید ممنون

programerinfonet
شنبه 21 اردیبهشت 1392, 13:52 عصر
پس چرا این سوالات ما همیشه بی جواب می مونه
یکی هم جواب مارو بده دیگه

_behnam_
شنبه 21 اردیبهشت 1392, 14:11 عصر
سلام دوست من.
عبارات با قاعده بهترین راه است واسه کاری که شما میخواید.

System.Text.RegularExpressions.Regex Reg = new System.Text.RegularExpressions.Regex("^[0-9a-zA-z-_.]+@[0-9a-zA-z-_]+.[a-zA-z]+$");
System.Net.WebClient Wc = new System.Net.WebClient();
string html = Wc.DownloadString("سایت مورد نظر");
System.Text.RegularExpressions.MatchCollection MC = Reg.Matches(html);
foreach (System.Text.RegularExpressions.Match mail in MC)
{
MessageBox.Show(mail.Value);
}
چک کن ببین درسته یا نه. خودم چک نکردم.

tooraj_azizi_1035
شنبه 21 اردیبهشت 1392, 19:14 عصر
using System.Net;

static void Main(string[] args)
{
Console.Write("\nPlease enter a URI (for example, http://www.sample.com):");
string remoteUri = Console.ReadLine();
WebClient myWebClient = new WebClient();
Console.WriteLine("Downloading " + remoteUri);
byte[] myDataBuffer = myWebClient.DownloadData(remoteUri);
string download = Encoding.ASCII.GetString(myDataBuffer);
Console.WriteLine("Download successful.");
String[] Emails = GetEmailsFromWebContent(download);
foreach (String Email in Emails)
{
Console.WriteLine(Email);
}

}

private static string[] GetEmailsFromWebContent(string webcontent)
{
MatchCollection coll = default(MatchCollection);
int i = 0;
coll = Regex.Matches(webcontent, "([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})");
string[] results = new string[coll.Count];
for (i = 0; i <= results.Length - 1; i++)
{
results[i] = coll[i].Value;
}

return results;
}

programerinfonet
یک شنبه 22 اردیبهشت 1392, 23:15 عصر
using System.Net;

static void Main(string[] args)
{
Console.Write("\nPlease enter a URI (for example, http://www.sample.com):");
string remoteUri = Console.ReadLine();
WebClient myWebClient = new WebClient();
Console.WriteLine("Downloading " + remoteUri);
byte[] myDataBuffer = myWebClient.DownloadData(remoteUri);
string download = Encoding.ASCII.GetString(myDataBuffer);
Console.WriteLine("Download successful.");
String[] Emails = GetEmailsFromWebContent(download);
foreach (String Email in Emails)
{
Console.WriteLine(Email);
}

}

private static string[] GetEmailsFromWebContent(string webcontent)
{
MatchCollection coll = default(MatchCollection);
int i = 0;
coll = Regex.Matches(webcontent, "([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})");
string[] results = new string[coll.Count];
for (i = 0; i <= results.Length - 1; i++)
{
results[i] = coll[i].Value;
}

return results;
}


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