PDA

View Full Version : چگونگی ساخت نرم افزارهایی مانند این



nopoir
جمعه 04 مهر 1393, 12:57 عصر
با سلام خدمت تمام دوستان

چطوری نرم افزارهایی مثل این http://cafebazaar.ir/app/com.hamrahyar.nabzebazaar/?l=fa (نبض بازار) میشه ساخت ؟یعنی از چه روشهایی استفاده شده ؟
و با وجود عدم امکان دسترسی به اطلاعات سایتی مثل دیجی کالا که توی این نرم افزار استفاده شده پس چطوری قیمت را نشون میدن یعنی کسی هست که هر روز قیمت را خودش توی نرم افزار وارد میکنه :متفکر: یا نه امکانی وجود داره که قیمت ها را از سایتای مورد نظر بخونند؟

با تشکر

pbm_soy
شنبه 05 مهر 1393, 01:58 صبح
من این برنامه ای که شما میگید را ندیدم ولی انطور که فهمیدم برنامه اطلاعات و کالاها و قیمتهای کالاهای سایتهای دیگر را نمایش میدهد

برای اینکار یا خود سایت آمده وب سرویسی را نوشته که اطلاعات را به کلاینتهاش میدهد و یا اینکه برنامه نویس این برنامه آمده اطلاعات هر صفحه سایت را پیمایش کرده و استخراج کرده و به سبکی که میخواسته در برنامه اش نمایش داده است! البته برای اینمنظور حتما نیازی به استخراج داده ها از صفحات وب نیست میتوانسته حتی با خواندن اطلاعات RSS سایت موزد نظر داده ها را از آن سایت بگیرد (این روش منطقی تر است)

nopoir
شنبه 05 مهر 1393, 05:31 صبح
من این برنامه ای که شما میگید را ندیدم ولی انطور که فهمیدم برنامه اطلاعات و کالاها و قیمتهای کالاهای سایتهای دیگر را نمایش میدهد

برای اینکار یا خود سایت آمده وب سرویسی را نوشته که اطلاعات را به کلاینتهاش میدهد و یا اینکه برنامه نویس این برنامه آمده اطلاعات هر صفحه سایت را پیمایش کرده و استخراج کرده و به سبکی که میخواسته در برنامه اش نمایش داده است! البته برای اینمنظور حتما نیازی به استخراج داده ها از صفحات وب نیست میتوانسته حتی با خواندن اطلاعات RSS سایت موزد نظر داده ها را از آن سایت بگیرد (این روش منطقی تر است)

سلام ممنون
بله درست میگید RSS روش خوبیه اما دیجی کالا که rss نداره و منظورتون از پیمایش چیه ؟
کسی میدونه چطوری با asp.net web api یا wcf میشه با اندروید ارتباط برقرار کرد ؟خودم این را http://guruparan.blog.com/2012/03/30/connecting-android-to-sql-server-via-wcf-using-json-part-1/ دیدم اما روی لوکال جواب نمیده چه کارش کنم؟

saeed_g21
شنبه 05 مهر 1393, 09:36 صبح
روی لوکال جواب نمیده چه کارش کنم؟
چرا جواب نمیده ؟
باید جواب بده به شرطی که :
1) Wamp Server روی سیستم نصب شده داشته باشی
2) Wamp Server رو تنظیم کنی به حالت شبکه ای (در حالت معمولی نمی تونی از سایر دستگاه ها به لوکال هاست دسترسی داشته باشی)
3) فایروال و اگه از Internet Security استفاده میکنی بایستی خاموش کنی یا پورتی که به Wamp Server دادی رو به اینا معرفی کنی که آزاد کنند

احسان!
شنبه 05 مهر 1393, 10:12 صبح
سلام
منظورتون از پیمایش چیه ؟

سلام
این به برنامه نویسی سمت سرویس دهنده بر میگرده.مثلا اگه با php نوشته بشه،معمولا از curl استفاده میشه.

nopoir
شنبه 05 مهر 1393, 14:30 عصر
چرا جواب نمیده ؟
باید جواب بده به شرطی که :
1) Wamp Server روی سیستم نصب شده داشته باشی
2) Wamp Server رو تنظیم کنی به حالت شبکه ای (در حالت معمولی نمی تونی از سایر دستگاه ها به لوکال هاست دسترسی داشته باشی)
3) فایروال و اگه از Internet Security استفاده میکنی بایستی خاموش کنی یا پورتی که به Wamp Server دادی رو به اینا معرفی کنی که آزاد کنند

وب سرویس با asp.net نوشته شده wcf هستش اما روی iis ویندوز 7 ام بارگزاری کردم اما وقتی از توی موزیلا بهش پارامتر ارسال میکنم مینویسه که سرویس غیرفعال شده در صورتی که اگه از خود Asp.net اجراش کنم و پارامترهارا از موزیلا ارسال کنم جواب درست میده.فایروال هم خاموشه.


اگه برای پیمایش بخواهیم از asp.net استفاده کنیم نه از php , روشش چیه ؟

بلاخره کسی نمیدونه در نرم افزار نبض بازار چطوری از سایتی مثل دیجی کالا قیمت را گرفته و توی نرم افزارش آورده ؟

omid.n1990
شنبه 05 مهر 1393, 15:00 عصر
بهترین کار همون استفاده از وب سرویس هست. اگر نبود RSS، اگر اون هم نبود و هیچ رابطی فراهم نشده بود و هیچگونه دسترسی به دیتابس و در کل هیچگونه ارتباط استانداری تعریف نشده بود و وجود نداشت، پارس کردن صفحه وب هم یکی از گزینه های نه چندان جالب هست. اینکه شما صفحات وب رو پارس کنید و تنها تگهای مناسب کارتون رو انتخاب کنید و نمایش بدید. مشکلی که پیش میاد اگر صفحه سایت تغییر جدی داشته باشه شما باز باید برنامه اتون رو تغییر بدید

pbm_soy
یک شنبه 06 مهر 1393, 00:35 صبح
همنطور که omid.n1990 گفت منظور از پیمایش همون پارس کردن یک صفحه وب است داده های موردنیازتان را از آن استخراج کنید

مثلا محتوای تک تک لینکهای اصلی سایت را باید استخراج کنید مثلا برای سایتی مثلا دیجی کالا
http://www.digikala.com/Main/Laptop
http://www.digikala.com/Main/Tablet-EBook-Reader
http://www.digikala.com/Main/Mobile
این لینکها هرکدام یک گروه کالا را برای شما لیست میکند و باید از آنها داده های موردنیازتان را باید استخراج کنید اینکار واقعا پردردسر است!

سایتی مثل دیجی کالا باید خیلی ممنون هم باشه که کسی همچین برنامه ای را برای آندروید با توجه به کالاها و قیمتهای اونها آماده کنه! یعنی این سایت حتما در جواب درخواست شما یک وب سرویس آماده میکنه و در اختیار برنامه میگذارد! مگر اینکه خودشون برنامه های دیگه ای داشته باشند یا حداقل RSS که دیگه سایتها جزو سرویسهایشان است

یک مورد دیگه :
بعضی از سایتها به سایتهای دیگر سرویس میدهند مثلا برخی سایتهای خبر یک لینک میدهند تا شما با گذاشتن آن لینک در سایتتان میتوانید آن اخبارها را می توانید در سایت خودتان نمایش دهید (در این روش معمولا هیچ علامتی از سایت اصلی دیده نمیشود و همه فکر میکنند این اخبار جزو محتوای اصلی خود این سایت است)
میتوان از این روش هم استفاده کرد البته روش کار مثل همان پارس کرد محتوای صفحات است ولی محتوای لینکهای اینچنینی ساده تر است و پارس کردن آنها ساده تر است

nopoir
یک شنبه 06 مهر 1393, 05:21 صبح
وب سرویس با asp.net نوشته شده wcf هستش اما روی iis ویندوز 7 ام بارگزاری کردم اما وقتی از توی موزیلا بهش پارامتر ارسال میکنم مینویسه که سرویس غیرفعال شده در صورتی که اگه از خود Asp.net اجراش کنم و پارامترهارا از موزیلا ارسال کنم جواب درست میده.فایروال هم خاموشه.


اگه برای پیمایش بخواهیم از asp.net استفاده کنیم نه از php , روشش چیه ؟

:متفکر:

سلام
ممنونم از همه
کسی میتونه برای راه اندازی wcf این مثال http://guruparan.blog.com/2012/03/30/connecting-android-to-sql-server-via-wcf-using-json-part-1/و اجراش با سمیلاتور اندروید کمکم کنه ؟واگه به جای avd از جنی موشین استفاده کنیم چه ip باید برای ارتباط با وب سرویس(asp.net) لوکال بدیم؟

shs1377
یک شنبه 06 مهر 1393, 10:28 صبح
برنامه نبض بازار قیمت ها رو از سرور خودش میگیره احتمالا سازندگانش هر چند ساعت قیمت ها رو از سایت ها میگیرن و در سرورشون با json (یا از طریق دیگه) ذخیره میکنن برای این حرفم دلیل دارم اونم این هست که جلوی قیمت محصولات نوشته که تمام قیمت ها زده مثلا دو ساعت پیش یعنی قیمت ها رو دو ساعت پیش بروز کردن

من خودم هم برنامه ای دارم که برای دریافت قیمت از این روش استفاده میکنم :
خودم قیمت های سایت دیجی کالا رو میگیرم و در سرور خودم با json ذخیره میکنم هر چند وقت یکبار هم بروزش میکنم حالا فاصله زمانی بروز کردن به این ربط داره که دریافت قیمت کار اصلی برنامه هست یا فرعی در برنامه من فرعیه به همین خاطر هر هفته یا دو هفته بروز میکنم ولی نبض بازار کار اصلیش دریافت قیمته به همین حاطر هر چند ساعت بروز میکنه

mrtzxxx
یک شنبه 06 مهر 1393, 15:53 عصر
برنامه نبض بازار قیمت ها رو از سرور خودش میگیره احتمالا سازندگانش هر چند ساعت قیمت ها رو از سایت ها میگیرن و در سرورشون با json (یا از طریق دیگه) ذخیره میکنن برای این حرفم دلیل دارم اونم این هست که جلوی قیمت محصولات نوشته که تمام قیمت ها زده مثلا دو ساعت پیش یعنی قیمت ها رو دو ساعت پیش بروز کردن

من خودم هم برنامه ای دارم که برای دریافت قیمت از این روش استفاده میکنم :
خودم قیمت های سایت دیجی کالا رو میگیرم و در سرور خودم با json ذخیره میکنم هر چند وقت یکبار هم بروزش میکنم حالا فاصله زمانی بروز کردن به این ربط داره که دریافت قیمت کار اصلی برنامه هست یا فرعی در برنامه من فرعیه به همین خاطر هر هفته یا دو هفته بروز میکنم ولی نبض بازار کار اصلیش دریافت قیمته به همین حاطر هر چند ساعت بروز میکنه

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

nopoir
سه شنبه 08 مهر 1393, 21:32 عصر
من خودم هم برنامه ای دارم که برای دریافت قیمت از این روش استفاده میکنم :


برنامتون اسمش چیه جایی انتشار دادین؟

میشه به جای این کارها از یه crawler که خودمون می نویسیم استفاده کنیم؟

omid.n1990
سه شنبه 08 مهر 1393, 23:11 عصر
برنامتون اسمش چیه جایی انتشار دادین؟

میشه به جای این کارها از یه crawler که خودمون می نویسیم استفاده کنیم؟
به نظرم روش تعیین قیمت به صورت دستی اصلا منطقی نیست و خیلی عجیبه!!! مگر تعداد محدود باشه و قیمتها رو نخواهید تو بازه های کوتاه تغییر بدید!
اگر رابطی فراهم نباشه بله نوشتن یک خزنده وب برای اون سایتی که میخواهید اطلاعاتش رو بگیرید تنها گزینه موجود به نظر میرسه ولی مشکل زمانی است که ساختار اطلاعات سایت تغییر میکنه. اون زمان کل برنامه شما کارکردش رو از دست میده و مجدد باید تغییرات ایجاد کنید. اگر سایت اصلی کمی تغییر کرد پارس کردن اطلاعاتی که خزنده شما به سدت اورده هم کمی کارکردش متفاوت خواهد شد ولی ممکنه شما کارتون رو تمام کردید ولی سایت مبدا مشخصا بدون اطلاع رسانی به شما تغییرات اساسی ایجاد کنه در سایتش که کار شما خیلی مشکل میشه

pbm_soy
سه شنبه 08 مهر 1393, 23:57 عصر
یعنی نمایش قیمت از دیجی کالا اینقدر مهم است؟!
برنامه هم برای نمایش قیمت باید از طریق وب سرویس شخصی شما قیمتهای دستی واردشده(که احتمال خطاهم وجوددارد) شما را نمایش میدهد! خوب کاربر بجای اجرای برنامه شما وب سایت دیجی کالا را باز می کند! نمید انم شاید هم مزایایی داشته باشد! این موارد را میگم صرفا تعجب میکنم!

کسی تا حالا با دیجی کالا تماس نگرفته در این رابطه؟
مورد دیگه آیا دیجی کالا سرویسی مبنی براینکه قیمتها را بصورت لحظه ای ایمیل کند دارد؟ اگر داشته باشد شاید واکشی قیمتها از ایمیل راحتتر باشد!

smemamian
چهارشنبه 09 مهر 1393, 00:12 صبح
بهترین کار همون استفاده از وب سرویس هست. اگر نبود RSS، اگر اون هم نبود و هیچ رابطی فراهم نشده بود و هیچگونه دسترسی به دیتابس و در کل هیچگونه ارتباط استانداری تعریف نشده بود و وجود نداشت، پارس کردن صفحه وب هم یکی از گزینه های نه چندان جالب هست. اینکه شما صفحات وب رو پارس کنید و تنها تگهای مناسب کارتون رو انتخاب کنید و نمایش بدید. مشکلی که پیش میاد اگر صفحه سایت تغییر جدی داشته باشه شما باز باید برنامه اتون رو تغییر بدید

شما نیازی نیست صفحه/صفحات سایت رو مستقیم از روی برنامه Parse کنید. شما وب سرویسی می نویسید و اطلاعات رو از وب سرویس خودتون می گیرید !
Parse یک صفحه سایت، در برنامه نویسی تحت دسکتاپ هم نیاز به پردازش سنگین داره !!

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

shs1377
چهارشنبه 09 مهر 1393, 15:15 عصر
سلام امکانش هست یه نمونه سورس معرفی کنید چون منم برای یکی از برنامه هام باید قیمتها رو بگیرم.

بفرما (http://www.androidhive.info/2012/01/android-json-parsing-tutorial/) البته من دقیقا از این کد استفاده نکردم


برنامتون اسمش چیه جایی انتشار دادین؟

میشه به جای این کارها از یه crawler که خودمون می نویسیم استفاده کنیم؟

خانواده اکسپریا

crawler هم راستش نمیدونم چیه:لبخند: