PDA

View Full Version : سوال: جدا كردن لينك سايت هاي جست و جو شده در گوگل (html)



s3rv3r
دوشنبه 14 فروردین 1391, 15:59 عصر
سلام دوستان

بنده با webRequest جست جو در گوگل انجام دادم و نتيجه رو تو يه متغير به اسم html دارم
ميخوام لينك خود سايت هاي تو سورس رو جدا كنم


http://www.google.com/search?hl=fa&q=" + txt_searh.Text + "&start=10

به عنوان مثال اين url هستش كه Request شده صفحه دوم از نتايج جست و جو رو ميده بهم

چندين ساعته دارم سرچ ميزنم.روش هاي زيادي تست شد با regex هاي گوناگون. به جوابي كه درسته باشه نرسيدم.

متاسفانه در Regex نوشتن مهارت ندارم.
كاري كه ميخوام انجام بدم اينه كه تو رشته html بيام از


www.

تا اولين / رو تو رشته جدا كنم
مثلا به سرچ iran يه سورس مياد كه اين تيكه تو سورس هست

<a href="/search?hl=fa&amp;q=related:www.daftar.org/+iran&amp;tbo=1&amp;sa=X&amp;ei=LJB5T7a8Fo3EswbR_si7BA&amp;ved=0CG cQHzAKOAo">مشابه</a></span></div><div class="esc slp" id="poS20" style="display:none">شما این را به صورت عمومی 1+ کرده اید.&nbsp;<a href="#" class="fl">لغو</a></div><span class="st">دفتر حفاظت منافع جمهوری اسلامی <em>ایران</em>، واشینگتن، ایالات متحده امریکا.<br></span></div></div></li><li class="g"><div class="vsc" pved="0CGoQkgowCzgK" bved="0CGsQkQo4Cg" sig="EPx"><h3 class="r"><a href="http://www.iran-embassy.dk/" class=l onmousedown="return rwt(this,'','','','22','AFQjCNEFw1E7Q_9f5R2J-

href درست جواب نميده چون گاها لينك خود گوگل هست. و من تنها اسم سايت رو ميخوام
ممنون ميشم كسي كمكم كنه

p.yazdkhasti
دوشنبه 14 فروردین 1391, 21:23 عصر
سلام
Pattern لازم برای Regex مورد نظر شما در کد زیر تحت عنوان متغیر Pattern توسط اینجانب مشخص شده است.

var source =
@"<a href='/search?hl=fa&amp;q=related:www.daftar.org/+iran&amp;tbo=1&amp;s....></a>'";
var pattern = "related:(?<1>[^/]*)/*";
var result = Regex.Match(source,pattern,RegexOptions.IgnoreCase | RegexOptions.Compiled);

while (result.Success)
{
Console.WriteLine("Found link " + result.Groups[1] + " at "
+ result.Groups[1].Index);
result = result.NextMatch();
}

s3rv3r
دوشنبه 14 فروردین 1391, 21:57 عصر
دوست عزيز تست كردم تو اين تكه سورس درست جواب ميده ولي براي سرچ صفحات گوگل درست نيست
در اصل سورس صفحاتي كه ميگيرم اينجوريه
http://www.google.com/search?hl=fa&q=iran&start=10
فقط http: رو بر ميگردونه بقيش رو نميده. ممنون ميشم تغيير بدي براي اينكه آدرس سايت رو بده

p.yazdkhasti
دوشنبه 14 فروردین 1391, 22:10 عصر
سلام
Pattern به صورت زیر اصلاح گردید:

var pattern = "related:(\\S*?://(?<1>[^/]*)|(?<1>[^/]*))";

s3rv3r
دوشنبه 14 فروردین 1391, 23:19 عصر
خيلي ممنونم دوست عزيز. فقط يه سوال كوچيك اينكه اين كلمه related چيكار ميكنه ؟؟‌ اولين باره ميبينمش

p.yazdkhasti
سه شنبه 15 فروردین 1391, 00:15 صبح
سلام
کلمه related در لینک هایی که google تولبد می کند قبل از آدرس اصلی لینک ذکر شده است.
ممنون