ورود

View Full Version : مشكل در گرفتن قسمتي از صفحه html توسط HttpWebRequest



mehdi_RM
دوشنبه 18 شهریور 1387, 12:59 عصر
با سلام
من با اين تيكه كد مي خوام قسمت وسط صفحه هواشناسي مربوط به شهر مورد نظرم رو از سايت weather .ir در بيارم همه چيز درست پيش مي ره فقط در اين روش حروف فارسي رو بهم بر نمي گردونه !!
مي خواستم بدونم چيكار بايد كنم تا حروف فارسي هم برگشت داده بشن؟؟؟


Imports System.IO
Imports System.Net


Dim strURL As String
Dim strResult As String
Dim wbrq As HttpWebRequest
Dim wbrs As HttpWebResponse
Dim sr, readStream As StreamReader

' Set the URL (and add any querystring values)
strURL = "http://www.irimo.ir/farsi/current/index.asp?station=99300"

' Create the web request

wbrq = WebRequest.Create(strURL)
wbrq.Method = "GET"

' Read the returned data
wbrs = wbrq.GetResponse

sr = New StreamReader(wbrs.GetResponseStream)


'result = readStream.ReadToEnd();



strResult = sr.ReadToEnd.Trim
sr.Close()

' Write the returned data out to the page



Dim str, strend As String
Dim StringSearch1, StringSearch2 As Integer
str = strResult

StringSearch1 = InStr(str, "<tr><Td dir=")
StringSearch2 = InStr(str, "<form name=frm2 action=history.asp")
strend = str.Substring(StringSearch1 - 20, StringSearch2 - StringSearch1 + 10)


Response.Write(Server.HtmlDecode(strend))



مي خوام خروجيم مثل اين صفحه بشه

http://aftab.ir/portal/weather/view.php?code=40754

mehdi_RM
دوشنبه 18 شهریور 1387, 21:09 عصر
كسي نيست ياري برسونه .؟
مدير بخش آقا بهروز چشم اميدمون به شماست؟
به غير از httpwebrequest يه روش ديگه هم فكر كنم بود توي يكي از تاپيك هاي شما قبلا ديده بودم ولي هر چي گشتم پيدا نكردم.

amin727
پنج شنبه 21 شهریور 1387, 14:17 عصر
این همه وب سرویس اب و هوا این چه کاریه؟؟

mehdi_RM
پنج شنبه 21 شهریور 1387, 14:57 عصر
جديدا متوجه شدم سايت weather.ir لطف كرده و آب و هواي شهر ها رو در اين فايل xml به ملت عرضه مي كنه.
http://www.weather.ir/farsi/RSS/xml.asp
قبلا از اين چيزا نيود ولي بازم كسي جواب ما رو نداد.
حالا بي خيال خودم از اين فايل xml استفاده كردم و مشكلم حل شد.
ممنون از دوستان

علیرضا مداح
پنج شنبه 21 شهریور 1387, 17:53 عصر
سلام دوست عزیز،
به کاربرد پروپرتی CharacterSet مربوط به شیء HttpWebResponse و همچنبن چگونگی ایجاد Stream ها با استفاده از Encoding به دست آمده در کد زیر توجه نمایید :



public void DownloadWebPage(string url, string destination)
{
Stream readStream = null;
StreamReader streamReader = null;
StreamWriter streamWriter = null;
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Encoding encoding = Encoding.GetEncoding(response.CharacterSet);
readStream = response.GetResponseStream();
streamReader = new StreamReader(readStream, encoding);
streamWriter = new StreamWriter(destination, false, encoding);
streamWriter.WriteLine(streamReader.ReadToEnd());
}
catch (Exception ex)
{
//Report Error
}
finally
{
if (readStream != null) readStream.Close();
if (streamReader != null) streamReader.Close();
if (streamWriter != null) streamWriter.Close();
}
}


نمونه:


DownloadWebPage("http://www.google.com (http://www.google.com/)", "c:\\google.txt");