سؤال

أنا أستخدم Google API لـ .NET http://code.google.com/p/google-api-for-dotnet/وبغض النظر عن عدد النتائج التي أطلبها من Google لا تُرجع أبدًا أكثر من 64.

هنا هو قصاصة الكود الخاصة بي:

GwebSearchClient client = new GwebSearchClient("xyz");
IList<IWebResult> results = client.Search(this.SearchText.Text, 100);

كنت أتوقع الحصول على 100 نتيجة ، ولكن لا تحصل على أكثر من 64 بغض النظر عن مصطلح البحث المستخدم.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

وفقًا لـ Google Ajax Search API (التي تستخدم نفس طلبات HTTP إلى خوادم Google مثل .NET API ،) فإن النتائج القصوى التي تم إرجاعها هي 64.

ملاحظة: يعتمد الحد الأقصى لعدد صفحات النتائج على نوع الباحث. يدعم البحث المحلي 4 صفحات (أو بحد أقصى 32 نتيجة إجمالية) والباحثين الآخرين (المدونة ، والكتاب ، والصورة ، والبراءات ، والفيديو ، والويب) يدعم 8 صفحات (للحصول على ما مجموعه 64 نتيجة).

من هنا, . أو ابحث في الصفحة عن "الحد الأقصى للرقم".

نصائح أخرى

هناك دائمًا خيار تحليل HTML:
كنت بحاجة إلى ما يقرب من 200،000،000 (أو 24 مترًا على الأقل) ، وبما أن واجهة برمجة التطبيقات لم تكن تقطعها ، فقد قررت تنزيل نتائج HTML وتحليلها يدويًا باستخدام التعبيرات العادية. مع علامات التجزئة ، تمكنت من القضاء على أي تكرارات.

تعبيري المعتاد:
(Parse فقط عناوين URL مع المجال المحدد ، وتحتوي على نطاقات فرعية مع 3-20 alphanumeric chars)

@"((?!www)([A-Za-z0-9-]{3,20})(\.example\.com))"

HTML URL المستخدم:

[C# Source]
String.Format(  "http://www.google.com/search?q=site:{0}&num={1}"+
                "&hl=en&tbo=d&as_qdr=all&start={2}&sa=N&biw=1280&bih=709", 
                "example.com", count, start)

لقد تم اختبار هذا في تطبيقاتي الخاصة ويؤدي إلى نتائج لطيفة إلى حد ما!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top