نظرًا لأنني قد حددت مرارًا وتاريخًا ثم فشلت في إصدار واجهة برمجة التطبيقات الخاصة بهم ، فقد قررت أخذ الأمر بيدي. يرجى ملاحظة أن هذه ليست الطريقة المثلى للقيام بالأشياء ، لكنها تعمل الآن. أردت إنشاء رسم بياني اجتماعي لصفحاتنا الأكثر شيوعًا حتى نتمكن من معرفة نوع الصور والمحتوى الذي كان له صدى لدى مشاهدينا ، لذلك توصلت إلى البرنامج النصي أدناه ومن ثم تمت ترقيتي عبر كل عنوان URL في قاعدة البيانات الخاصة بنا والحصول على البيانات التي أستخدمها بحاجة.
لقد انتقلت إلى الإطار iframe الذي تم إنشاؤه بواسطة وسيلة شرح زر وتوصلت إلى عنوان url هذا:
HTTP: //pinit-cdn..com/pinit.html URL = HTTP: //www.allrecipes.com
حسنًا ، كان الأمر سهلاً ، يتم عرض الرقم هناك في معرف div الخاص به CountBubble. لذلك قمت بتجعيده واستخدمت مكتبة simple_html_dom php في التحليل. أبقى العودة 0 على الرغم من. يصيح! يتم تغيير هذا الرقم مع جافا سكريبت بعد تحميل الصفحة. يجب أن يكون قد شاهد المصدر بدلاً من فحص العنصر. لذا ، أشاهد المصدر بدلاً من ذلك ، وهناك هذا الرمز الجميل الذي يجلس هناك فقط من أجل متعة البرمجة.
snode.setAttribute ('src'، '//api..com/v1/urls/count.json؟callback=receiveCount&url='+targetUrl)؛
من ذلك ، أقوم بجمع عنوان URL التالي من المحتمل أن يسحب البيانات التي أحتاجها ،
HTTP: //api..com/v1/urls/count.json رد = receiveCount وURL = HTTP: //www.allrecipes.com
الذي يعرض:
receCount ({"count": 1148، "url": "http://www.allrecipes.com"})
لذلك ، ملفوفة json لها ملفوفة في استدعاء دالة من API لم تصدر بعد للجمهور. كيف مريحة. يوجد أدناه القليل من التعليمات البرمجية التي تحتاجها لجعل هذا العمل في PHP. يجب أن يكون لديك تمكين cURL على الخادم الخاص بك.
$ pinurl = "http: //api..com/v1/urls/count.json؟ callback = receivedCount & url ="؛ $ targeturl = "http://www.allrecipes.com/"؛ $ pinurl. = $ brandurl؛ $ html = pull_html ($ pinurl)؛ // احصل على html من خلال دالة تستدعي cURL $ html = str_replace ("ReceCount ("، ""، $ html)؛ // أزل الوظيفة التي تم استدعاء البيانات بها في $ html = substr ($ html، ""، -1)؛ $ = json_decode ($ html)؛ // convert from json to php array $ pincount = $ -> count؛ echo $ pincount؛ // هناك وظيفة الرقم pull_html ($ url) {$ ch = curl_init () ؛ curl_setopt ($ ch ، CURLOPT_URL ، $ url) ؛ curl_setopt ($ ch ، CURLOPT_RETURNTRANSFER ، 1) ؛ curl_setopt ($ ch ، CURLOPT_CONNECTTIMEOUT ، 10) ؛ $ html = curl_exec ($ ch) (curl_exec) ؛}
كما ترون ، فإننا نقوم بسحب البيانات مع حليقة ثم ندعو إلى استدعاء دالة التي ملفوفة حول بيانات json. ثم إنها مجرد مسألة استخدام json_decode لتحويل بيانات json إلى صفيف php. فويلا! كله تمام. لقد قمت بتشغيل حوالي 3000 عنوان URL حتى الآن ولم تُرجع البيانات أي مشكلة. كان بطيئا في بعض الأحيان ، وليس متأكدا مما إذا كان عن طريق التصميم أو عن طريق. لا يزال سحب وتخزين البيانات وأنا اكتب هذا. أنا متأكد من أنه في مرحلة ما سيكون هناك نوع من الحد من الأسعار ، لكنني لم أركض إلى أي جدران حتى الآن. ربما لا يُفترض أن يكون هذا مخفيًا عن المبرمجين ، لكن على حد علمي ، لا يوجد دعم رسمي إلا إذا كنت أحد الناشرين القلائل الذين اختاروا العمل معهم.