PDA

View Full Version : کمک در فیدخوان شهرخبر



parsaei
جمعه 17 بهمن 1393, 21:21 عصر
با سلام
دوستان من یک فیدخوان شبیه شهر خبرنوشتم.درست کارمیکنه. فقط مشکلی که دارم فید برخی سایت ها را نمیخونه! Rss اون سایت را دانلود کرده و روی هاست خودم گذاشتم و راحت خوندمش!
بررسی ایی که انجام دادم به این نتیجه رسیدم که مشکل از گرفتن فایل rss از اون سایتهاست. حالا یا مشکل از آدرس اون rss هست یا از ... نمیدونم
سایتی که rss مشکل داره alef.ir

بیتا حکمت
جمعه 17 بهمن 1393, 21:53 عصر
سلام . الان RRS سایت الف رو چک کردم . احتمالا دلیل مشکل اینکه RRS سایت نامبرده description رو نداره ، فقط لینک مطالب هست و خود توضیحات لینک داخل فایل XML وجود ندارن

parsaei
جمعه 17 بهمن 1393, 23:19 عصر
ممنون از جوابتان. اما مشکل این نیست چون همون فایل xml را وقتی ذخیره کرده و از طریق یه هاست دیگه به اسکریپتم دادم راحت خوندش!
من دارم از کد زیر برای گرفتن فایل xml فید استفاده می کنم
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(RssUrl);
myRequest.Timeout = 20000; //20 second
WebResponse myResponse = myRequest.GetResponse();

Stream rssStream = myResponse.GetResponseStream();
XmlDocument rssDoc = new XmlDocument();
rssDoc.Load(rssStream);

وقتی که مقدار RssUrl برابر آدرس فید سایت الف می شود در خط سوم (myRequest.GetResponse) خطای 403 میده. حالا یا آدرس این فایل xml را نمیشه با این دستورات خواند و یا اینکه خود سایت کاری کرده که نشده. اما مسئله اینه که سایت شهر خبر خیلی راحت داره فیدهای سایت الف را می خواند!
از کدهای دیگه هم برای خواندن این Rss استفاده کردم همشون خطا دادن.
مثلا این کد که همون خطا را داد
XmlReader r = XmlReader.Create(RssUrl);
یا این کد توی خط دوم خطا داد:
XmlDocument doc = new XmlDocument();
doc.Load(RssUrl);

parsaei
شنبه 18 بهمن 1393, 13:37 عصر
همچنان منتظر کمک کارشناسان محترم هستم
تشکر

parsaei
شنبه 18 بهمن 1393, 22:13 عصر
کسی نمیخواد کمکی کنه؟! خیلی از خبرخوان ها دارن این نوع فیدها را می خوانن. اما من نمی دونم چرا نتونستم! لطفا راهنمایی بفرمایید

aminmousavi
یک شنبه 19 بهمن 1393, 00:56 صبح
سلام دوست عزیز
به این شکل بنویس ببین مشکلت حل میشه ؟

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(RssUrl);
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
myRequest.Referer = "http://www.google.com/";
myRequest.Timeout = 20000; //20 second
WebResponse myResponse = myRequest.GetResponse();


Stream rssStream = myResponse.GetResponseStream();
XmlDocument rssDoc = new XmlDocument();
rssDoc.Load(rssStream);

parsaei
یک شنبه 19 بهمن 1393, 09:16 صبح
ممنون. درست شد. عالی بود.
اینطوری به سایت مقصد میگم من مرورگر فایرفاکسم که از سمت گوگل اومدم :قهقهه:
ترفند خوبیه. بازهم ممنونم

بیتا حکمت
یک شنبه 19 بهمن 1393, 11:57 صبح
ممنون. درست شد. عالی بود.
اینطوری به سایت مقصد میگم من مرورگر فایرفاکسم که از سمت گوگل اومدم :قهقهه:
ترفند خوبیه. بازهم ممنونم

من متوجه نشدم ، میشه اینایی رو که گفتین بیشتر توضیح بدین .

parsaei
یک شنبه 19 بهمن 1393, 12:01 عصر
با خط اول دستورات زیر به هاستی که داریم بهش مراجعه می کنیم خود را مرورگر فایرفاکس معرفی می کنیم و با خط دوم هم نشون میدیم که مثلا گوگل ما را (منظور همون سایتمان هست) به سمت او ارجاع داده است :چشمک:


myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
myRequest.Referer = "http://www.google.com/";

بیتا حکمت
یک شنبه 19 بهمن 1393, 12:10 عصر
با خط اول دستورات زیر به هاستی که داریم بهش مراجعه می کنیم خود را مرورگر فایرفاکس معرفی می کنیم و با خط دوم هم نشون میدیم که مثلا گوگل ما را (منظور همون سایتمان هست) به سمت او ارجاع داده است :چشمک:


myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
myRequest.Referer = "http://www.google.com/";





الان فهمیدم چرا شکلک خنده زدین ، جالب بود . اگر براتون ممکنه کد کامل رو بزارین . منظورم کدی که هست که لینک و توضیحات رو بدست میارید