جمع آوری داده ها از سایت های بدون API
سلام خدمت تمام دوستان برنامه نویس و استاد گرامی:)
خب سوالم اینه که چطوری می تونیم داده های یک سایت رو توی دیتابیسی که خودمون طراحی میکنیم ذخیره کنیم ، سایتی که ما به وب سرویس هاش دسترسی هم نداریم به طور مثال سایت دیجیکالا رو در نظر بگیرید در این سایت هر محصول شامل تعداد زیادی داده و اطلاعات هست حالا چطور میشه این داده ها رو ذخیره کرد و ازش استفاده کرد؟( دیجیکالا یک مثال بود صرفا)
سوال کلی تر اینکه کلا چطور باید داده های جدولی مثله مثال بالا داده های خبری و هرچیز دیگه ای رو در اینترنت دریافت کرد و استفاده کرد؟
امیدوارم منظورم رو رسونده باشم .
بله منظور رسید ! این جور پروژه ها معمولا درد سر زیادی دارن ، ولی خوب من با VB.NET به خاطر رو کم کنی نوشته بودمش ! ، چطور کار میکرد ؟
- یا خود سایت یه دروازه به ما میده ، که با یه امضا (کد شخصی خودتون) بتونین داده ازش بخونین (مورد شما این نیست ! ، اما دقیقا کاری هست که استاد آموزشش دادن )
- اگه سرور ماله خودتون باشه با پلاگین هایی مثله SQL SERVER FOR .NET مستقیم به پایگاه داده وصل بشید
- شما از روی سورس کد سایت ، داده ها رو استخراج کنید (دقیقا نیاز شما ، چون یه جورایی میخواین ، محتوا رو بدزدید ! )
کاری که من کرده بودم ، ایجاد یه رابط گرافیکی تحت ویندوز برای یه بازی آنلاین ، با خوندن سورس کد های سایت بود ، بعد داده هایی رو که میخواستم ذخیره کنم ، به صفحه پست میکردم ، یا اگه GET بود GET میکردم !
- اگه پروژت واقعا ارزششو داره این کارو بکن ، چون حتی یه تغییر خیلی جزئی تو سورس کد سایت ، ممکنه کل الگوریتم دیتابیست رو به هم بریزه ، پس روش معقولی نیست !
برای خوندن سورس کد همون کلاس وب سرویس که تو ویدئو استاد مینویسن کافیه ، مثل گرفته سورس گوگل ، حالا من اینجوری کار کردم
با فرض اینکه نام کالای شما در DigiKala بین تگی که کلاس product-title رو داشته باشه ، سورس دریافتی میشه این
<html>
....
<body>
<p class='product-title'>کالای اول</p>
<div class='pro-container'>
<p class='product-desc'> توضیحی برای کالای اول </p>
</div>
</body>
</html>
حالا شما سورس کد را با وب سرویس گرفتید ، تو یه متغییر ذخییره کردید ، کافیه مقدار های کلاس product-title و product-desc رو بگیرید ، و در آرایه یا هرچیز دیگه ذخیره کنید
کاری که من تو اون بازی انلاین کردم این بود ، کاربر یوزر پس میداد به برنامه تحت ویندوز ، لاگین میکرد ، بعد داده ها پست میشد به سرور تا تو سرور هم لاگین بشه ، بعد سورس کد صفحه رو میخوندم ، اگه لاگین شده بود وارد گیم میشد ، محیط تحت ویندوز هم شبیه سازی محیط تحت وب بود ، حالا داده ها رو از سورس کد میخوندن و تو محیط ویندوز نشون میدادم ، برای ذخیره هم پست میکردمشون !
- هر چیزی اولش سر یه موضوع مسخره شروع میشه ، مثل رو کم کنی تو اون سورس من ! ، اما خوب من آخرش واسه سه روز برنامه نویسی ، با قیمت خوبی سورس پروژه رو دادم به یکی از دوستام ، اونم الان به صورت رایگان با Donate عرضه اش کرده ، خودش که میشه با یکم توسعه ی سورس ، تونسته فقط از همون دونیت یا کمک مالی ، در آمد خوبی کسب کنه ! ، ولی خوب من واسه این گفته اگه ارزششو داره ، چون با تغییر سورس کد ، تازه متوجه شروع درد سر میشید !
javac جان این لینک خود phpquery :) اسنادشم هست ، میتونی مطالعه کنی
https://code.google.com/p/phpquery
در کل یه جور سلکتور هستش ، یعنی ابجکت ها رو از صفحه میگیره همون کاری که میخوایم دستی انجام بدیم با فراخوانی دستوراتش قابل انجامه ، من خودم خیلی کار نکردم ، معمولا خودم بوت می نویسم ، اما خوب این استاندارد تره ، با تعریف یه الگوی کلی میشه محتوا رو خوند
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .