ايران ويج

نسخه‌ی کامل: کار با سورس سایت
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام خست نباشید دوستان سریع ترین روش ممکن چی میخوام مثلا برنامه بره تو سورس یه سایت ببینه لینک مورد نظر من بطور مثال www.news110.ir
داخل اون سایت وجود داره یا نه سریع ترین روش ممکن بدون هنگ کردن برنامه چی؟


میخوام سورس سایت مورد نظرمو بریزم تو test.text که برای این کار از کد زیر استفاده میکنم

کد:
test.Text = Inet1.OpenURL(Text2.Text, icString)
text2.text همون ادرس سایت هسته ولی برنامه وقتی این کد اجرا میکنه یک دو دقیقه هنگ میکنه چطور سورس سایت بگیرم که هنگ نکنه؟

وقتی هنگ میکنه یک دو دقیقه این شکلی میشه !
http://www.up.deneed.net/images/bvo0rhzbbbitih8v1n5.jpg
http://www.up.deneed.net/images/82n3...myyyhsma5c.jpg
اینو برات نوشتم | دانلود پروژه
[تصویر:  untitled.jpg]

کد:
Private WithEvents HttpSocket As WinHttp.WinHttpRequest

Private Sub Command1_Click()
    On Error Resume Next
    Label2.Caption = "Status: Checking...."
    Set HttpSocket = New WinHttp.WinHttpRequest
    HttpSocket.Open "GET", Text1.Text, True
    HttpSocket.SetRequestHeader "Accept", "*/*"
    HttpSocket.Send
End Sub

Private Sub HttpSocket_OnError(ByVal ErrorNumber As Long, ByVal ErrorDescription As String)
    Label2.Caption = "Status: Can't connect"
End Sub

Private Sub HttpSocket_OnResponseFinished()
    On Error Resume Next
    Label2.Caption = "Status: Check complete"
    Text2.Text = HttpSocket.ResponseText
    If InStr(1, Text2.Text, Text3.Text) <> 0 Then
        Label4.ForeColor = &HC000&
        Label4.Caption = "the word is exist in page"
    Else
        Label4.ForeColor = &HC0&
        Label4.Caption = "not exist word in page"
    End If
End Sub
سلام واقعا ممنون فقط میشه یکم توضیح بدین راجب روش استفاده شما استفاده از api هسته؟یا کتابخونه؟
از بخش REFERECES گزینه microsoft winhttp services رو تیک بزنید.
در winhttp همونطور که میبینی درخواست دریافت یه صفحه وب رو به پورت 80 سایت ارسال میکنیم با دستور GET روی پروتکل HTTP
کد:
HttpSocket.Open "GET", Text1.Text, True
درخواست های پروتکل HTTP نیاز به هدر دارند که ما یه بخش کوچیکی از هدر رو نوشتیم که فقط سایت رو درخواست کنیم
کد:
HttpSocket.SetRequestHeader "Accept", "*/*"
حالا درخواست رو ارسال میکنیم
کد:
HttpSocket.Send

پس از اینکه درخوست رو ارسال کردیم دو رویداد در برنامه رو نوشتیم یکی دریافت کامل سایت و دیگری ارور (کانکت نشدن به سایت)
کد:
Private Sub HttpSocket_OnResponseFinished()
Private Sub HttpSocket_OnError(ByVal ErrorNumber As Long, ByVal ErrorDescription As String)

در رویداد OnResponseFinished نوشتیم که HttpSocket.ResponseText رو در text2 بریز. HttpSocket.ResponseText همون سورس صفحه هست. سپس با دستور instr در این سورس عبارت مورد نظر رو جستجو کردیم.

در رویداد OnError هم که مشخصه، پیغام متصل نشدن رو نوشتیم
یه سوال چرا باپورت 80 کار میکنن با پورت دگه ای نمیشه؟
چون پورت پروتکل HTTP هشتاد هست. مثلا از چه پورتی؟
از پورت 21 هم میشه ولی باید یوزر و پس FTP سایت رو داشته باشید. یعنی صاحب سایت خودتون باشید.