سؤال

النظر في المسائل التالية كود بايثون:

 30    url = "http://www.google.com/search?hl=en&safe=off&q=Monkey"
 31    url_object = urllib.request.urlopen(url);
 32    print(url_object.read());

عندما يتم تشغيل, يتم طرح استثناء:

File "/usr/local/lib/python3.0/urllib/request.py", line 485, in http_error_default
   raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

ومع ذلك ، عندما يتم وضعه في متصفح البحث عوائد كما هو متوقع.ما الذي يجري هنا ؟ كيف يمكنني التغلب على هذا حتى أستطيع البحث جوجل برمجيا ؟

أي أفكار ؟

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

المحلول

إذا كنت تريد أن تفعل البحث جوجل "بشكل صحيح" من خلال واجهة برمجة, نلقي نظرة على جوجل واجهات برمجة التطبيقات.ليس فقط هي هذه الطريقة الرسمية من البحث جوجل ، فهي أيضا من غير المحتمل أن تتغير إذا جوجل يغير نتيجة تخطيط الصفحة.

نصائح أخرى

وهذا ينبغي أن تفعل خدعة

user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'

url = "http://www.google.com/search?hl=en&safe=off&q=Monkey"
headers={'User-Agent':user_agent,} 

request=urllib2.Request(url,None,headers) //The assembled request
response = urllib2.urlopen(request)
data = response.read() // The data u need

كما lacqui اقترح, ، جوجل API هي الطريقة التي تريد أن تجعل طلبات من التعليمات البرمجية.للأسف لقد وجدت الوثائق الرامية إلى الناس الكتابة اياكس صفحات الويب ، لا يجعل الخام طلبات HTTP.اعتدت LiveHTTP رؤوس لتتبع طلبات HTTP أن العينات التي وجدت ddipaolo بلوق وظيفة مفيدا.

أكثر شيء واحد أن عبثت بي:أنها تحد لك أول 64 النتائج من استعلام.عادة لا مشكلة إذا كنت مجرد توفير الإنترنت للمستخدمين مع مربع البحث ، ولكن ليس من المفيد إذا كنت تحاول استخدام جوجل للذهاب استخراج البيانات.أعتقد أنهم لا يريدون لك أن تذهب استخراج البيانات باستخدام API الخاصة بهم.أن 64 عدد تغيرت مع مرور الوقت يختلف بين منتجات البحث.

تحديث: يبدو أنها بالتأكيد لا تريد أن تذهب استخراج البيانات.في النهاية يمكنك الحصول على الخطأ 403 مع رابط إلى هذا إشعار الوصول إلى API.

يرجى مراجعة شروط استخدام API(s) الذي تستخدمه (مرتبط في الحق في الشريط الجانبي) وضمان الامتثال.فمن المحتمل أننا منعك أحد شروط الاستخدام التالية الانتهاكات:تلقينا الآلي تطلب مثل تجريف الجلب المسبق.الآلي تطلب المحظورة ؛ جميع الطلبات يجب أن تكون نتيجة إجراء المستخدم النهائي.

كما أنها قائمة انتهاكات أخرى ، ولكن أعتقد أن هذا هو واحد التي أدت بالنسبة لي.وأنا قد تضطر إلى التحقيق ياهو مدرب الخدمة.فإنه لا يبدو أن لديها العديد من القيود.

وأنت تفعل ذلك في كثير من الأحيان. جوجل لديها حدود في المكان لمنع الحصول على اغراق السير في البحث. يمكنك أيضا محاولة وضع المستخدم وكيل إلى شيء أكثر شبها متصفح عادي.

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