PDA

View Full Version : تعدادلینک ها به یک صفحه



nh212002
سه شنبه 04 اردیبهشت 1386, 09:47 صبح
سلام
خسته نباشید
میخواستم بدونم نرم افزاری هست که تعداد لینکهایی که به یک page میشه و تعداد لینکهایی که از انpage به دیگر صفحات میشه را پیدا کرد. اگر راه حلی سراغ دارید مرا راهنمایی کنید.با تشکر

Behrouz_Rad
سه شنبه 04 اردیبهشت 1386, 10:31 صبح
برای اینکه بدونی چه سایت هایی به سایت تو لینک دادن، بهترین راه بهره جستن از موتورهای جستجو است.
می تونی از سینتکس :link در موتورهای جستجویی نظیر گوگل و یاهو استفاده کنی...
تعداد نتایج برگشتی، تخمینی از سایت هایی هست که به سایت تو لینک دادن.


link: www.barnamenevis.org

برای اینکه تعداد لینک های موجود در صفحات خودت رو به دست بیاری، برنامه ای ندیدم اما خودت می تونی صفحه رو با استفاده از کلاس HttpWebRequest بازیابی کنی و با آنالیز تگ های A موجود در صفحه، اونهایی که در href اشون آدرسی به جز آدرس سایت خودت هست رو استخراج کنی.

موفق باشید.

raravaice
سه شنبه 04 اردیبهشت 1386, 11:59 صبح
برو از سایت http://www.alexa.com بگرد دنبال api یا web service این موردی که میخوای اونجا هست
موفق باشی

raravaice
سه شنبه 04 اردیبهشت 1386, 12:04 عصر
در ضمن از تایمر هم میتونی استفاده کنی در فایل global.asax که به صورت یک spider خود سرور تمام لینکها رو برات update کنه و شما اونارو بریزی توی یه بانک اطلاعاتی تا اگه خدا بخواد یه روز بشی یه موتور جستجوی قوی

قابل توجه داش بهروز

Behrouz_Rad
سه شنبه 04 اردیبهشت 1386, 12:33 عصر
در ضمن از تایمر هم میتونی استفاده کنی در فایل global.asax که به صورت یک spider خود سرور تمام لینکها رو برات update کنه و شما اونارو بریزی توی یه بانک اطلاعاتی تا اگه خدا بخواد یه روز بشی یه موتور جستجوی قوی

قابل توجه داش بهروز
شما بهتره کمی با تعقل بیشتری رفتار کنی... PM خصوصیت رو نادیده می گیرم...
----------------------------
در مورد حرف هایی که قابل توجه من دونستی بیشتر توضیح بده!

samanes
سه شنبه 04 اردیبهشت 1386, 17:57 عصر
همون طور که بهروز جان اشاره کرد..
یک DataBase ایجاد کن با فیلد های ID , Referer, Count
یک کلاس ایجاد کن که از Page ارث بگیره .. متد OnLoad رو Override کن و در آن Referere صفحه رو بگیر. اگه از سایت خودت نبود,
در DataBase ذخیره کن با ... اگه قبلا اسم این سایت در DataBase ذخیره شده بود, فیلد Count رو یک واحد افزایش بده...

صفحات Web ات از این کلاس ارث بگیرند...

فکر میکنم علمی ترین روش این باشه.. من در تمام سایتام از این روش استفاده کردم.

Behrouz_Rad
سه شنبه 04 اردیبهشت 1386, 20:30 عصر
دوستان مثل اینکه متوجه سوال دوستمون نشدند!

ایشون جواب خودشون رو گرفتند و از طریق پیام خصوصی اعلام فرمودند.

موفق باشید.:لبخندساده:

raravaice
چهارشنبه 05 اردیبهشت 1386, 12:32 عصر
Private Function linkinAddress(ByVal source As String) As ArrayList
Dim linkLocal As ArrayList = New ArrayList
Dim link, startingUrl As String
Dim url As String = source
Dim browser As WebClient = New WebClient
Dim enc As UTF8Encoding = New UTF8Encoding
Dim fileContents As String = enc.GetString(browser.DownloadData(url))
For Each match As Match In Regex.Matches(fileContents, "(?<=<(a|area)\s+href="").*?(?=""\s*/?>)", RegexOptions.IgnoreCase Or RegexOptions.ExplicitCapture)
link = match.Value
Dim spacePos As Integer = link.IndexOf(" "c)
Dim quotePos As Integer = link.IndexOf(""""c)
Dim chopPos As Integer = (Microsoft.VisualBasic.IIf(quotePos < spacePos, quotePos, spacePos))
If chopPos > 0 Then
link = link.Substring(0, chopPos)
End If
If (link.Length > 8) AndAlso (link.Substring(0, 7).ToLower = "http://") Then '
If link.EndsWith("/") = True Then
link = link.Remove(link.Length - 1, 1)
End If
If Link_To_HostName.main(url) = Link_To_HostName.main(link) Then
'in address
link = Replace(link, "www.", "")
Dim n As Uri = New Uri(link)
linkLocal.Add(n.Scheme & "://" & n.Authority & n.AbsolutePath & n.Query)
'Response.Write(n.Scheme & "://www." & n.Authority & n.AbsolutePath & n.Query & "--in<br>")
Else
End If
Else
'in address
If link.EndsWith("/") = True Then
link = link.Remove(link.Length - 1, 1)
End If
Dim s As Uri = New Uri(url)
Dim n As Uri = New Uri(s, link)
If n.Scheme <> "javascript" Then
linkLocal.Add(n.Scheme & "://" & n.Authority & n.AbsolutePath & n.Query)
End If

'Response.Write(n.Scheme & "://" & n.Authority & n.AbsolutePath & n.Query & "--in<br>")

End If
Next
Return linkLocal

End Function
سورس بالا لینکهای داخلی رو بهت میده
Private Function linkoutAddress(ByVal source As String) As ArrayList
Dim linkExternal As ArrayList = New ArrayList
Dim link, startingUrl As String
Dim url As String = source
Dim browser As WebClient = New WebClient
Dim enc As UTF8Encoding = New UTF8Encoding
Dim fileContents As String = enc.GetString(browser.DownloadData(url))
For Each match As Match In Regex.Matches(fileContents, "(?<=<(a|area)\s+href="").*?(?=""\s*/?>)", RegexOptions.IgnoreCase Or RegexOptions.ExplicitCapture)
link = match.Value
Dim spacePos As Integer = link.IndexOf(" "c)
Dim quotePos As Integer = link.IndexOf(""""c)
Dim chopPos As Integer = (Microsoft.VisualBasic.IIf(quotePos < spacePos, quotePos, spacePos))
If chopPos > 0 Then
link = link.Substring(0, chopPos)
End If
If (link.Length > 8) AndAlso (link.Substring(0, 7).ToLower = "http://") Then '
If Link_To_HostName.main(url) = Link_To_HostName.main(link) Then
Else
'out address
link = Replace(link, "www.", "")
Dim n As Uri = New Uri(link)
'Response.Write(n.Scheme & "://www." & n.Authority & n.AbsolutePath & n.Query & "--out<br>")
linkExternal.Add(n.Scheme & "://www." & n.Authority & n.AbsolutePath & n.Query)
End If
Else
End If
Next
Return linkExternal
End Function
این سوسرس هم لینکهای خارجی
Private Function EmailAddress(ByVal source As String) As String()
Dim link, startingUrl As String
Dim url As String = source
Dim browser As WebClient = New WebClient
Dim enc As UTF8Encoding = New UTF8Encoding
Dim fileContents As String = enc.GetString(browser.DownloadData(url))

Dim mc As MatchCollection
Dim i As Integer
mc = Regex.Matches(fileContents, _
"([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})")
Dim results(mc.Count - 1) As String
For i = 0 To results.Length - 1
results(i) = mc(i).Value
Next
Return results
End Function
این یکی هم ایمیل های داخل صفحه
با آرزوی موفقیت برای شما

raravaice
چهارشنبه 05 اردیبهشت 1386, 12:35 عصر
شما بهتره کمی با تعقل بیشتری رفتار کنی... PM خصوصیت رو نادیده می گیرم...
----------------------------
در مورد حرف هایی که قابل توجه من دونستی بیشتر توضیح بده!

بیا کدورتها را دور بریزم قبول تو بیشتر از من میدونی ولی مسئله این نیست مسئله اینه که آرشیو اطلاعات هم دیگر و زیاد کنیم
اینو به گوش همه ایرانیان عزیز برسونید
موفق باشی بهروز جان