PDA

View Full Version : سوال: ذخیره کردن page Source صفحات Web در یک فایل Text



Black Shadow
یک شنبه 25 بهمن 1388, 13:51 عصر
با سلام.
من دیروز یک مرورگر ساده ی وب نوشتم که خب مثل IE و ... آدرس رو میگیره و وارد سایت ها میشه ولی من یه مشکلی دارم! میخوام توی این مرورگر وارد بعضی از سایت ها که میشم بتونم Page Source رو به صورت کامل در یک فایل Text ذخیره کنم و از طرف دیگه هم تمام تصاویر رو با همون پسوندی که هستن مثلا Gif یا Jpg تو همون پوشه ذخیره کنم. در واقع این پروژه یه نرم افزار ذخیره ی سایت و یا صفحات اینترنتی هستش! برای این موضوع کمی مشکل دارم که اگر دوستان کمی راهنمایی کنند ممنون میشم!

AliRezaPro
یک شنبه 25 بهمن 1388, 14:22 عصر
واکشی کردن PageSource ؛تست کنید

/// <summary>
/// Get a string representation of a webpage's source.
/// </summary>
/// <param name="URL">The URL to get the source from.</param>
/// <returns></returns>
string getPageSource(string URL)
{
System.Net.WebClient webClient = new System.Net.WebClient();
string strSource = webClient.DownloadString(URL);
webClient.Dispose();
return strSource;
}
برای ذخیره کردن عکس از این کد استفاده کنید

static public byte[] GetBytesFromUrl(string url)
{
byte[] b;
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
WebResponse myResp = myReq.GetResponse();

Stream stream = myResp.GetResponseStream();
//int i;
using (BinaryReader br = new BinaryReader(stream))
{
//i = (int)(stream.Length);
b = br.ReadBytes(500000);
br.Close();
}
myResp.Close();
return b;
}
و با کد زیر میتوانید آن را در دیسک ذخیره کنید

static public void WriteBytesToFile(string fileName, byte[] content)
{
FileStream fs = new FileStream(fileName, FileMode.Create);
BinaryWriter w = new BinaryWriter(fs);
try
{
w.Write(content);
}
finally
{
fs.Close();
w.Close();
}

}

Black Shadow
یک شنبه 25 بهمن 1388, 23:14 عصر
و یه سوال... برای این کار نیاز هست که کلید یا چیزی رو برداریم تا با فشار دادن اون این Source Page ذخیره بشه؟

AliRezaPro
دوشنبه 26 بهمن 1388, 09:23 صبح
شما میتونید در کلید اون تابع را صدا بزنید، هر جوری میتوانید استفاده کنید.بسته به سلیقه و در گاهی اوقات به این داره که قرار کجا ها صدا زده بشه(اگه قراره چند جا صدا زده بشه بهتره در کلاس باشه.