चूंकि बार-बार एक तारीख दी गई है और फिर बाद में उनके एपीआई को जारी करने में विफल रहा, इसलिए मैंने मामले को अपने हाथों में लेने का फैसला किया। कृपया ध्यान दें कि यह चीजों को करने का आदर्श तरीका नहीं है, लेकिन, अब यह काम करता है। मैं अपने सबसे लोकप्रिय पृष्ठों का एक सामाजिक ग्राफ बनाना चाहता था ताकि हम जान सकें कि हमारे दर्शकों के साथ किस तरह की तस्वीरें और सामग्री गूंज रही थी, इसलिए मैं नीचे दी गई स्क्रिप्ट के साथ आया और फिर हमारे डेटाबेस में प्रत्येक URL के माध्यम से लूप किया और मुझे डेटा मिला जरूरत है।
मैं एक बटन कॉलआउट द्वारा बनाए गए iframe में नीचे चला गया और इस url के साथ आया:
http: //pinit-cdn..com/pinit.html url = http:? //www.allrecipes.com
खैर यह आसान था, संख्या अपनी डिव आईडी काउंटबुल में वहीं प्रदर्शित होती है। इसलिए मैंने इसे कर्ल किया, और पार्स करने के लिए 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 = receiveCount & url ="; $ targeturl = "http://www.allrecipes.com/"; $ pinurl। = $ brandurl; $ html = pull_html ($ pinurl); // एक फ़ंक्शन के माध्यम से HTML प्राप्त करें जो कॉल $ html = str_replace ("ReceCount (", "", $ html); // फ़ंक्शन कॉल को निकालने के लिए डेटा $ html = सब्स्टीट्यूट ($ html, "" "में लिपटा है) -1); $ = json_decode ($ html); // json से php सरणी में परिवर्तित करें $ pincount = $ -> गिनती; प्रतिध्वनि $ pincount; // इसमें नंबर फंक्शन पुल_ html ($ url) {$ = = कर्ल_इनिट () है। ; कर्ल_सेटॉप ($ ch, CURLOPT_URL, $ url); कर्ल_सेटॉप ($ ch, CURLOPT_RETURNTRANSFER, 1); कर्ल_सेटॉप ($ ch, CURLOPT_CONNECTTIMEOUT; 10); $ html = कर्ल_टैक्स_ $ + ;}
जैसा कि आप देख सकते हैं, हम कर्ल के साथ डेटा को खींचते हैं फिर फ़ंक्शन कॉल को बाहर निकालते हैं जो कि जसन डेटा के चारों ओर लिपटा होता है। तो यह सिर्फ json_decode का उपयोग करके json डेटा को php सरणी में बदलने की बात है। देखा! सब कुछ कर दिया। मैंने अब तक लगभग 3, 000 URL चलाए हैं और डेटा में कोई समस्या नहीं है। यह समय पर थोड़ा धीमा था, निश्चित नहीं कि अगर डिजाइन या द्वारा। जैसा कि मैंने यह टाइप किया है, तब भी यह डेटा को खींच रहा है और संग्रहीत कर रहा है। मुझे यकीन है कि कुछ बिंदु पर किसी प्रकार की दर सीमित होगी, लेकिन मैं अभी तक किसी भी दीवार में नहीं चला हूं। हो सकता है कि यह प्रोग्रामर से छिपा हुआ भी न हो, लेकिन जहां तक मुझे पता है, कोई आधिकारिक समर्थन नहीं है जब तक कि आप उन कुछ प्रकाशकों में से एक नहीं होंगे जिन्हें उन्होंने काम करने के लिए चुना है।
