PDA

View Full Version : سوال: دریافت اطلاعات از روی سایت



vahid4251
سه شنبه 18 تیر 1392, 16:57 عصر
سلام بچه ها یک کمکی میخوام
مییخواستم ببینم راهی داره مثلا من از این سایت اون قسمتایی که مشخص کردم هر روز تکستاشو بگیرم و
یعنی با تغیر اینا تو برنامه منم تغیر کنه هر کی میتونه کمک کنه چون لازم دارم

106942http://barnamenevis.org/images/misc/pencil.png

just4froum
سه شنبه 18 تیر 1392, 18:44 عصر
با سلام :

شما ابتدا باید سورس صفحه رو بگیرید که با کنترل های webbrowser و Inet و Winsock و توابع api این کار امکان پذیر است که مثال های زیادی برای هرکدام در انجمن وجود دارد.

سپس با انجام عملیات رشته ها قسمت های مورد نیاز را بدست آورید.

موفق باشید

just4froum
سه شنبه 18 تیر 1392, 18:50 عصر
برای بدست آوردن سورس صفحه با inet ابتدا کنترل 6 Microsoft Internet Transfer Control رو به فرمت اضافه کن و با کد زیر سورس صفحه رو پیدا کن :

source = Inet1.Openurl("Your URL")

mtn677
سه شنبه 18 تیر 1392, 19:22 عصر
برای بدست آوردن سورس صفحه با inet ابتدا کنترل 6 Microsoft Internet Transfer Control رو به فرمت اضافه کن و با کد زیر سورس صفحه رو پیدا کن :

source = Inet1.Openurl("Your URL")

سلام
به نظر شما سرعت کدوم روش برای به دست آوردن سورس بهتره و کمتر امکان خطا وجود داره:
source = Inet1.Openurl("Your URL")



یا


source=WebBrowser1.document.Body.Innerhtml

SlowCode
سه شنبه 18 تیر 1392, 19:40 عصر
سرعت inet حدودا دو برابر وب بروزر هست(البته تو اولین اجرا) تو دفعات بعد اگه صفحه رو کش کنه سرعتشون تقریبا برابر میشه(ولی بازم سرعت آی نت 100 میلی ثانیه بهتر خواهد بود.)
ولی تو وب بروز شما میتونی به اشیاء DOM دسترسی پیدا کنی و این خیلی خوبه! کار شما خیلی راحت میشه.

miladatashin
سه شنبه 18 تیر 1392, 19:42 عصر
سلام
به نظر شما سرعت کدوم روش برای به دست آوردن سورس بهتره و کمتر امکان خطا وجود داره:
source = Inet1.Openurl("Your URL")



یا


source=WebBrowser1.document.Body.Inner

دومی سریع تر هست

SlowCode
سه شنبه 18 تیر 1392, 19:52 عصر
من الان با دقت بررسی کردم متوجه شدم که سرعتشون بالا پایین میره!
یعنی با اطمینان نمیشه گفت که سرعت کدومشون بیشتره.
ولی امکانات وب بروزر بیشتره.

mtn677
سه شنبه 18 تیر 1392, 19:53 عصر
از لحاظ سرعت تفاوت چندانی ندارن.
ولی تو وب بروز شما میتونی به اشیاء DOM دسترسی پیدا کنی و این خیلی خوبه! کار شما خیلی راحت میشه.

منظور شما اینه که با وب بروز میشه یه فرم رو پر کرد ولی با اون یکی نمیشه؟
یه سوال دیگه.فرض کن با بروزر یک صفحه رو لود میکنیم و صفحه خیلی سنگین هست و حدود 30 ثانیه باید صبر کنیم تا کامل بشه با چه ابزاری میتونیم یه صفحه انتظار ایجاد کنیم و وقتی که صفحه کامل لود شد صفحه انتظار هم محو بشه.

just4froum
سه شنبه 18 تیر 1392, 19:57 عصر
با سلام :

اگر صرفا بدست آوردن سورس صفحه مد نظر هست و نمی خوای صفحه را نشان بدی inet یا winsock خوبه ولی اگر می خوای صفحه رو نشان بدی که صد البته webbrowser.

خوبی webbrowser اینه که نیازی نیست ocx رجیستر کنی که حجم برنامه میاد پایین ولی Inet نیاز به رجیستر داره.

اگر کار با winsock رو بلد نیستی inet راحت تره ولی اگر کار با winsock رو بلدی winsock منطقی تره ( کنترل بیشتری روش داری و اگر بخوای سورس چند صفحه رو پشت سر هم با inet بگیری احتمال خطا میره بالا)

یه چندتا مقایسه دیگه هم بکنم چسبید :قهقهه:

خوبی webbrowser اینه که شما می تونی بخشی از سورس صفحه رو بدست بیاری ولی inet کل سورس رو بهت میده و توی winsock که کلا باید چک کنی کل سورس اومده یا نه بعد قسمت های اولش رو برداری که کد نویسی میره بالا.

mtn677
سه شنبه 18 تیر 1392, 20:05 عصر
خوبی webbrowser اینه که شما می تونی بخشی از سورس صفحه رو بدست بیاری .
اگه میشه اینو بیشتر توضیح بده:لبخندساده:

miladatashin
سه شنبه 18 تیر 1392, 20:23 عصر
منظور شما اینه که با وب بروز میشه یه فرم رو پر کرد ولی با اون یکی نمیشه؟
یه سوال دیگه.فرض کن با بروزر یک صفحه رو لود میکنیم و صفحه خیلی سنگین هست و حدود 30 ثانیه باید صبر کنیم تا کامل بشه با چه ابزاری میتونیم یه صفحه انتظار ایجاد کنیم و وقتی که صفحه کامل لود شد صفحه انتظار هم محو بشه.

در صورتی که سرعت اینترنت پایین باشه و صفحه حجمش زیاد باشه inet با خطا مواجه میشه. فکر میکنم سریعترین روش دانلود صفحه با api باشه. چون فقط کد html صفحه دانلود میشه و نه تصاویر و .....
در مورد صفحه انتظار هم پیشنهاد من اینه که یک فرم انتظار درست کنید و فرمی که توش هستین غیر فعال کنید و اون فرم انتظار رو نمایش بدین به شکل زیر

Private Sub Downloadpage()
WebBrowser1.Navigate "http://yahoo.com"
Me.Enabled = False
frmwaiting.Show
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Source = WebBrowser1.Document.body.innerhtml
Me.Enabled = True
Unload frmwaiting
End Sub

mtn677
سه شنبه 18 تیر 1392, 21:47 عصر
در صورتی که سرعت اینترنت پایین باشه و صفحه حجمش زیاد باشه inet با خطا مواجه میشه. فکر میکنم سریعترین روش دانلود صفحه با api باشه. چون فقط کد html صفحه دانلود میشه و نه تصاویر و .....
در مورد صفحه انتظار هم پیشنهاد من اینه که یک فرم انتظار درست کنید و فرمی که توش هستین غیر فعال کنید و اون فرم انتظار رو نمایش بدین به شکل زیر

Private Sub Downloadpage()
WebBrowser1.Navigate "http://yahoo.com"
Me.Enabled = False
frmwaiting.Show
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Source = WebBrowser1.Document.body.innerhtml
Me.Enabled = True
Unload frmwaiting
End Sub


منظور از Private Sub Downloadpage چیه؟

من اینجوری اصلاحش کردم


Private Sub Form_Load()
WebBrowser1.Navigate "http://barnamenevis.org"
Me.Hide
frmwaiting.Show
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
source = WebBrowser1.Document.body.innerhtml
Unload frmwaiting
Form1.Show
End Sub

miladatashin
سه شنبه 18 تیر 1392, 23:41 عصر
منظور از Private Sub Downloadpage چیه؟

من اینجوری اصلاحش کردم


Private Sub Form_Load()
WebBrowser1.Navigate "http://barnamenevis.org"
Me.Hide
frmwaiting.Show
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
source = WebBrowser1.Document.body.innerhtml
Unload frmwaiting
Form1.Show
End Sub
منظور خاصی نیست. من اسم پروسیجرم رو گزاشتم downloadpage و اون رو تو هر رویدادی بخوام فراخوانی میکنم و شما تو رویداد لود فرم گزاشتین

vahid4251
چهارشنبه 19 تیر 1392, 11:06 صبح
بچه ها دانلود کردن سورس صحفرو میدونم چجوریه من اعداد اونو میخوام بردارم و با هم جمع کنم یا نمودار بکشم مهم اینه که چطور اون اعدادو بردارم

miladatashin
چهارشنبه 19 تیر 1392, 11:13 صبح
خب بعد اینکه کد html صفحه رو داشتین (فرقی نمیکنه با هر روشی)


loctxt = InStr(txtNotes, "SVS13127PXB")
loctxt = InStr(loctxt, txtNotes, "<spa")
Text1 = Mid(txtNotes, loctxt + 19, 6)
loctxt = InStr(loctxt + 10, txtNotes, "<spa")
Text2 = Mid(txtNotes, loctxt + 19, 9)


با فرض اینکه متن html در متغیر txtNotes ریخته شده. با کد بالا text1 میشه حجم و text2 میشه قیمت

vahid4251
چهارشنبه 19 تیر 1392, 11:18 صبح
میشه یکی یک سورس بهم بده من با سورس راحتتر یاد میگیرم ممنون میشم

miladatashin
چهارشنبه 19 تیر 1392, 11:29 صبح
الان کجاش نامفهوم بود .غیر از این کد ها که گفته بودم فقط یک خط لازم بود کد اضافه کنید. که گفتین بلدین