PDA

View Full Version : سوال: سوال درمورد خواندن فایل از سایت دیگر



pbiuki630
یک شنبه 27 اسفند 1391, 12:31 عصر
من میخوام کد html یک فایل رو که در سایت دیگس بگیرم باasp.net و یک عبارت رو توی اون محتویات جستجو کنم
چه جوری میتونم؟

clover
یک شنبه 27 اسفند 1391, 13:27 عصر
سلام
با استفاده از این تابع می تونید سورس صفحات رو دریافت کنید:


string responseText = SendRequest("http://yahoo.com/")


private string SendRequest(string url, string method = "GET", string postString = null, bool getResponse = true)
{
string responseText = null;
HttpWebRequest request;

try
{
request = WebRequest.Create(url) as HttpWebRequest;
request.CookieContainer = _cookieContainer;
request.UserAgent = "Your Agent";
request.KeepAlive = false;
request.AllowAutoRedirect = true;
request.Method = method;
request.Timeout = 10000;

if (method.ToUpper() == "POST")
{
byte[] byteData = Encoding.UTF8.GetBytes(postString);

request.ContentLength = byteData.Length;
request.ContentType = "application/x-www-form-urlencoded";

using (Stream stream = request.GetRequestStream())
{
stream.Write(byteData, 0, byteData.Length);
stream.Close();
}
}


using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (getResponse)
{
if (request.HaveResponse == true && response != null)
{
using (StreamReader streamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
responseText = streamReader.ReadToEnd();
}
}
}

response.Close();
}
}
catch
{
}

return responseText;
}

pbiuki630
یک شنبه 27 اسفند 1391, 13:38 عصر
ممنون از لطفتون
چه طوری میتونم متنی رو که گرفتم پیمایش کنم و اطلاعات داده ای را از جلوی td ها بخونم؟

clover
یک شنبه 27 اسفند 1391, 14:48 عصر
از عبارات با قاعده استفاده کنید، البته من خودم زیاد باهاشون آشنایی ندارم اما به عنوان یک مثال کد زیر می تونه این کار رو انجام بده:

string responseText = SendRequest("http://barnamenevis.org/showthread.php?389445");
MatchCollection matches = Regex.Matches(responseText, @"<td.*?>([\r\n\s\S]*?)</td>");

foreach (Match item in matches)
{
string content = item.Groups[1].Value;
}

pbiuki630
یک شنبه 18 فروردین 1392, 12:56 عصر
clover ممنون از راهنماییت، از کجا میتونم regularای که میخوام رو بسازم؟

clover
یک شنبه 18 فروردین 1392, 13:14 عصر
عبارت رو خودتون باید تولید کنید. نرم افزار آماده ای برای تولید این عبارات وجود نداره. البته نرم افزار هایی مثل Expresso هستند که توی تولید عبارات به شما کمک می کنند اما اینکه صد در صد عبارت مورد نظر شما رو تولید کنند خیر.

pbiuki630
یک شنبه 18 فروردین 1392, 13:29 عصر
مثلا برای یه همچین چیزی چی باید نوشت؟
<td class="boxcar gerd">(cop) وانت باردو .سپر جدید</td>

clover
یک شنبه 18 فروردین 1392, 13:40 عصر
مثلا برای یه همچین چیزی چی باید نوشت؟
<td class="boxcar gerd">(cop) وانت باردو .سپر جدید</td>

<td class="boxcar gerd">(.*?)</td>

hamidreza1376
یک شنبه 18 فروردین 1392, 21:28 عصر
<td class="boxcar gerd">(.*?)</td>
سلام.
ممنون