2016-08-18 11 views
6

मैं एक मनमानी Google खोज शब्द के लिए "एन एन परिणाम" संख्या को स्क्रैप करने में सक्षम होना चाहता हूं। Google स्क्रैपर्स के लिए काफी प्रतिरोधी है, जबकि यह थोड़ा सा काम करने का विकल्प हो सकता है, मैं विशेष रूप से पूछ रहा हूं कि ऐसा करने का बेहतर तरीका है या नहीं? शायद Google द्वारा प्रदान की गई एक पूर्ववर्ती API है जो इस आवश्यकता को पूरा करेगी?क्या Google खोज से "एन परिणाम" नंबर वापस करने का कोई प्रोग्रामेटिक तरीका है?

उत्तर

1

मैं स्क्रैपिंग का प्रयास नहीं करता क्योंकि इसके साथ कानूनी रूप से कानूनी अक्षमताएं हैं, लेकिन Google कस्टम खोज API का उपयोग करेंगे। आपको एक एपीआई कुंजी के साथ-साथ सीएक्स आईडी की आवश्यकता होगी (यह एक कस्टम सर्च इंजन के लिए एक आईडी है जिसे आप अपने Google खाते में सेट अप करेंगे)

एक बार आपके पास एपीआई और आपकी सीएक्स आईडी तक पहुंच हो, तो आप cse.list विधि से प्रश्न सबमिट कर सकते हैं और totalResults के तहत प्रतिक्रिया में जो नंबर आप खोज रहे हैं उसे प्राप्त कर सकते हैं।

अपने कस्टम खोज इंजन को सेट अप और अनुकूलित करते समय आपको उन साइटों को परिभाषित करना होगा जिन्हें आप खोजना चाहते हैं। सौभाग्य से, आप * .com, * .net, आदि जैसे वाइल्डकार्ड जोड़ सकते हैं या पूरे वेब को खोजने के लिए इस पृष्ठ पर दिए गए निर्देशों का पालन कर सकते हैं: https://support.google.com/customsearch/answer/2631040?hl=en

मैंने उन सभी लिंक को शामिल किया है जिन पर आपको आगे बढ़ने की आवश्यकता होगी यह नीचे। एक बार आपके पास सीएक्स आईडी होने के बाद एपीआई सूची एक्सप्लोरर आज़माएं। यह आपको वास्तविक समय प्रतिक्रिया डेटा देगा जो आप जांच सकते हैं और साथ खेल सकते हैं।

https://developers.google.com/custom-search/json-api/v1/reference/cse/list

cse.list विधि एक्सप्लोरर:

Google कस्टम खोज एपीआई

https://developers.google.com/custom-search/

इस विधि/endpoint आप उपयोग करना चाहते जाएगा:

https://developers.google.com/apis-explorer/#p/customsearch/v1/search.cse.list

सेट करें और अपने कस्टम खोज इंजन प्रबंधन

https://cse.google.com/cse/manage/all

नोट: परिणाम निर्भर करता है आप कैसे अपने खोज इंजन कॉन्फ़िगर किया है थोड़ा भिन्न हो सकते हैं। मेरे पास * .com और * .net डोमेन पर जोर देने के साथ पूरे वेब को खोजने के लिए एक परीक्षण स्थापित किया गया है और मुझे "एन एन नतीजे" में Google द्वारा दिखाए जाने की तुलना में बड़ी संख्या मिल रही है। मुझे यकीन नहीं है कि आपको उस सटीक संख्या की आवश्यकता है, लेकिन वे इसे "इसके बारे में" बता रहे हैं, इसलिए यह पूरी तरह सटीक संख्या नहीं हो सकता है। मुद्दा यह है कि, सीएसई के साथ आपके पास इसे कॉन्फ़िगर करने के तरीके पर बहुत अधिक नियंत्रण है और आपको बहुत करीब पहुंचने में सक्षम होना चाहिए।

+0

यह प्राप्त किया गया है परिणाम की वास्तविक गणना नहीं देता है, लेकिन एक बहुत ही प्रतिबंधित सबसेट है। यहां देखें: http://jsfiddle.net/gh/gist/library/pure/6130833/ – DhruvPathak

+0

आपके द्वारा उपयोग किए गए सीएक्स आईडी के साथ आपने अपने खोज इंजन पर कौन से डोमेन कॉन्फ़िगर किए हैं? ऐसा लगता है कि यह केवल 'developers.google.com' खोज रहा है। खोज को विस्तृत करने के लिए आपको ऊपर वर्णित वाइल्डकार्ड डोमेन जोड़ना होगा। –

+0

एक Google उदाहरण है, लेकिन मैं जो कह रहा हूं वह है कि बहुत सारे वाइल्डकार्ड डोमेन वेब के बहुत सारे अंश को याद करेंगे। – DhruvPathak

0

मान लें कि यह आपकी कस्टम खोज एपीआई है, क्या आपने JSON प्रतिक्रिया निकाय से totalResults को सशर्त रूप से निकालने का प्रयास किया है?

आप क्वेरी पैरामीटर पर एक जाँच प्रदर्शन से है कि प्राप्त कर सकते हैं, (क्यू कहते हैं की सुविधा देता है)

if(q.equals("your string")){ 
    var keyName = "totalResults"; 
    var resp = json_encode($response); 
    delete resp.queries.<APIkey>[keyName];  
} 

नोट: संरचना keyName पता लगाने के लिए: totalResults से here

संबंधित मुद्दे