PDA

View Full Version : کار با سورس سایت



aleas2
شنبه 19 آذر 1390, 11:19 صبح
سلام خست نباشید دوستان سریع ترین روش ممکن چی میخوام مثلا برنامه بره تو سورس یه سایت ببینه لینک مورد نظر من بطور مثال www.news110.ir (http://www.news110.ir)
داخل اون سایت وجود داره یا نه سریع ترین روش ممکن بدون هنگ کردن برنامه چی؟

Snoopboy
شنبه 19 آذر 1390, 12:15 عصر
شما اول باید سورس سایت رو دانلود کنید توسط وینسوک . بعد توی اون سورس دنبال لینکتون بگردید اینا رو ببین
http://barnamenevis.org/showthread.php?317351-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%B3%D9%88%D8%B1%D8%B3-%D8%B3%D8%A7%DB%8C%D8%AA
http://barnamenevis.org/showthread.php?315699-%D9%86%D8%B4%D8%A7%D9%86-%D8%AF%D8%A7%D8%AF%D9%86-%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AF%D8%B1-%D8%AA%DA%A9%D8%B3%D8%AA&highlight=%D8%B3%D9%88%D8%B1%D8%B3+%D8%B3%D8%A7%DB %8C%D8%AA

aleas2
شنبه 19 آذر 1390, 12:49 عصر
روش سریع تر دگه ای وجود نداره؟
تو لینکی دادی درست توضیح نداده چطور از WinSock استفاده کنم اگر امکان داره یه سورس کوچک از روش استفاده از WinSock بذارین ممنون

_behnam_
شنبه 19 آذر 1390, 15:44 عصر
سلام! اینجا (http://barnamenevis.org/showthread.php?314831-%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86-%DB%8C%DA%A9-%D9%81%D8%A7%DB%8C%D9%84-%D9%85%D8%AA%D9%86%DB%8C-%D8%AF%D8%B1-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA)هم میتونید نگاهی بندازید(خالی از لطف نیست)

aleas2
شنبه 19 آذر 1390, 18:06 عصر
سلام ممنون ولی من گفتم یه روش که سریع تر جواب بده همینطور برنامه هنگ نکته بطور مثال تو این تاپیکی معرفی کردین روشی که
محسن واژدی (http://barnamenevis.org/member.php?104729-%D9%85%D8%AD%D8%B3%D9%86-%D9%88%D8%A7%DA%98%D8%AF%DB%8C)
سورسی معرفی کرده بجای استفاده از Inet یا Winsock ولی وقتی ازش استفاده میکنم برنامه یک دو دقیقه هنگ میکنه همینطور از Inetهم استفاده میکنم برنامه هنگ میکنه یه روش میخواستم که زود جواب بده و هنگ نکنه بطور مثال وقتی سورس این وب http://sportfun.blogfa.com میگیرم برنامه یک دو دقیقه هنگ میکنه

aleas2
شنبه 19 آذر 1390, 23:18 عصر
راهی وجود نداره؟

Snoopboy
شنبه 19 آذر 1390, 23:54 عصر
من تا حالا یه بار کار کردم با سورس سایت . اونم برای کمک گرفتن در نوشتن یک اسپمر بود. ولی هنگش خیلی پایین بود. شما شاید بتونی با نوشتن یک Pause در دستور وقفه ایجاد کنی که هنگ نکنه و دچار ارور نشی

_behnam_
یک شنبه 20 آذر 1390, 00:16 صبح
Inet یا Winsock معمولا باعث هنگ برنامه نمیشن!!!!
تاحالا ندیدم :متفکر:

Snoopboy
یک شنبه 20 آذر 1390, 00:32 صبح
Inet که هنگ نداره ولی Winsock یه کم داره. ولی خیلی ناچیزه. شاید به قول بهنام عزیز در بعضی موارد اصلا به چشم نیاد

aleas2
یک شنبه 20 آذر 1390, 01:17 صبح
متاسفانه بعضی سایت هارو باز میکنم یک دو دقیقه هنگ میکنه بطور مثال این دستور

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

Snoopboy
یک شنبه 20 آذر 1390, 01:55 صبح
Public Sub Pause(Interval)
On Error Resume Next
Dim Delay
'
Delay = Timer
Do While Timer - Delay < Val(Interval)
DoEvents
Loop
End Sub
از این تابع وقفه استفاده کن. ببین کارت راه میفته.

aria1o
یک شنبه 20 آذر 1390, 11:47 صبح
با سلام
البته سورس برنامه رو من ندیدم ولی در اکثر مواقع زمان استفاده از Inet ،از تابع URLDownloadToFile استفاده میشه، بخاطر سرعت اینترنت زمان مکث برنامه روی تابع متفاوت میشه.در واقع نمیشه گفت برنامه هنگ کرده،منتظر هست تا دستورات کامل بشه و به ادامه کار بپردازه.

aleas2
یک شنبه 20 آذر 1390, 12:09 عصر
ببخشید میشه بگین روش استفاده از این وقفه چجوری؟
سورس برنامه که گفتم همون یک خط هسته که رو همون گیر میکنه ربطی به هچی دگه نداره و میشه درمورد تابع URLDownloadToFile کمی توضیح بدین و همینطور روش استفاده؟

_behnam_
یک شنبه 20 آذر 1390, 16:02 عصر
ببین دوست عزیز قانون اجرای کدهای برنامه همینه!!! خوب تا به دستور کامل اجرا نشه برنامه به خط بعد نمیره.
باید کد زیر اجرا بشه و محتویات سایت رو بدست بیاره تا خط بعدش اجرا بشه دیگه!!
test.Text = Inet1.OpenURL(Text2.Text, icString)
فرض کن همزمان با این دستور شما بری خط بعد و کد :
If test.text Like "*www.news110.ir*" Then
اجرا بشه!
چه اتفاقی میوفته؟!!!
هیچی:چشمک:
چون توی test.Text هیچ رشته ای وجود نداره که بخواد جستجو کنه!

امیدوارم منظورمو گرفته باشی

aleas2
یک شنبه 20 آذر 1390, 16:40 عصر
عزیز بنده متوجه منظور شما هستم من که نمیگم تا این خط

test.Text = Inet1.OpenURL(Text2.Text, icString)
اجرا نشه رو این خط باشه تا سورس بگیره منظور من اینه این کد کار خودشو بکنه ولی برنامه دگه هنگ نکنه که نشه صفحه رو جابجا کرد این شکلی نشه که یک دو دقیقه اینطور میشه
7904079041

_behnam_
یک شنبه 20 آذر 1390, 22:05 عصر
خوب میتونید از Winsock استفاده کنید!

IamOverlord
یک شنبه 20 آذر 1390, 22:20 عصر
برای رفع این مشکل از Multithreading استفاده می کنن که VB6 درست و حسابی واسه این کار نیست. ببینید می تونید کلک بزنید؟ مثلا توی یه Form دیگه این قسمت از کد رو اجرا کنید؟

aleas2
یک شنبه 20 آذر 1390, 22:36 عصر
خب میشه سورس نمونه از استفاده از Winsock بدین؟
منظورتون از Multithreading چی؟

_behnam_
یک شنبه 20 آذر 1390, 23:06 عصر
اینم یه نونه کار با وینسوک

Mr'Jamshidy
یک شنبه 20 آذر 1390, 23:07 عصر
قبلا سورس گزاشته شده
جستجو کنید

aleas2
دوشنبه 21 آذر 1390, 01:32 صبح
ببخشید یه سوال کوچک داشتم شرمنده این سورس وینسوک که دادی وقتی میزنی سورس بریزه تو تکست یکدفعه کد سورس سایت نمیریزه کم کم میریزه میخواستم بدونم از کجا میشه تشخیص داد سورس کامل داخل تکست ریخته شده یا نه که اگر سورس کامل داخل تکست بود دستور بعدی که من میگم اجرا بشه
بطور مثال تا این کد سورس کامل نگیره کد بعدی اجرا نمیشه
test.Text = Inet1.OpenURL(Text2.Text, icString)
برای وینسوک چطور باید اینکارو بکنم؟

aleas2
دوشنبه 21 آذر 1390, 17:11 عصر
سلام خسته نباشید یه روش پیدا کردم که هنگ نکنه یکی از دوستان بهم گفته

Private WithEvents HttpSocket As WinHttp.WinHttpRequest

Private Sub Command1_Click()
On Error Resume Next
Set HttpSocket = New WinHttp.WinHttpRequest
HttpSocket.Open "GET", Text1.Text, True
HttpSocket.SetRequestHeader "Accept", "*/*"
HttpSocket.Send
End Sub
Private Sub HttpSocket_OnResponseFinished()
Text2.Text = HttpSocket.ResponseText
End Sub


گفتم شاید بدرد یکی دگه خورد

_behnam_
دوشنبه 21 آذر 1390, 17:48 عصر
سلام خسته نباشید یه روش پیدا کردم که هنگ نکنه یکی از دوستان بهم گفته

Private WithEvents HttpSocket As WinHttp.WinHttpRequest

Private Sub Command1_Click()
On Error Resume Next
Set HttpSocket = New WinHttp.WinHttpRequest
HttpSocket.Open "GET", Text1.Text, True
HttpSocket.SetRequestHeader "Accept", "*/*"
HttpSocket.Send
End Sub
Private Sub HttpSocket_OnResponseFinished()
Text2.Text = HttpSocket.ResponseText
End Sub


گفتم شاید بدرد یکی دگه خورد
یعنی با Inet هنگ میکنه اما با این کد هنگ نمیکنه؟! (عــجــب)
به هرحال خدارو شکر که کارتون راه افتاد.


موفق باشید/

aleas2
دوشنبه 21 آذر 1390, 18:34 عصر
اره خیلی جلبه اگر هنگ میکنه خیلی خیلی کم !!

ضمنا" اگر امکان داره جواب سوال بنده رو هم بدین بدرد تجربه میخوره !


ببخشید یه سوال کوچک داشتم شرمنده این سورس وینسوک که دادی وقتی میزنی سورس بریزه تو تکست یکدفعه کد سورس سایت نمیریزه کم کم میریزه میخواستم بدونم از کجا میشه تشخیص داد سورس کامل داخل تکست ریخته شده یا نه که اگر سورس کامل داخل تکست بود دستور بعدی که من میگم اجرا بشه
بطور مثال تا این کد سورس کامل نگیره کد بعدی اجرا نمیشه
test.Text = Inet1.OpenURL(Text2.Text, icString)
برای وینسوک چطور باید اینکارو بکنم؟

_behnam_
دوشنبه 21 آذر 1390, 23:22 عصر
معمولا من واسه گرفتن محتویات سایت از Winsock استفاده نمیکنم فقط واسه سرور و کلاینت استفاده میکنم
واسه اینکه مشخص بشه که پکت یا دیتا کامل دریافت شده معمولا اول و آخر پکت علامت میزارن یا استانداردتر میان انداره اون مشخص میکنن و فقط به اندازه از پیش تعیین شده دیتا دریافت میشه.