هل هناك أي شيء خاطئ مع رمز جلب عنوان URL لمحرك Google App الذي لدي هنا؟

StackOverflow https://stackoverflow.com/questions/1894279

سؤال

عندما عرض مصدر الصفحة في المتصفح الخاص بي (Firefox) (View-> مصدر الصفحة)، انسخه ولصقه في محرر HTML الخاص بي، أرى نفس الصفحة تقريبا (في هذا المثال، www.google.com) كما يظهر في متصفحي. ولكن عندما أحصل على مصدر HTML من خلال هذا الرمز (من خلال محركات تطبيق Googles)

from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
   print result.content

انسخه ولصقه في محرر HTML الخاص بي، ثم تبدو الصفحة مختلفة تماما. لماذا هو كذلك؟ هل هناك شيء خاطئ في الكود؟

++++++++++++++++++++++++++++++

متابعة:

بحلول هذه اللحظة (الأحد، 13 ديسمبر 2009، 1:01 مساء، بتوقيت جرينتش، ليكون دقيقا) تلقيت تعليقات اثنين من الأسئلة (من هارون و كريستيان ب.) وجواب واحد من أليكس مارتيلي.

كلاهما هارون و كريستيان ب. يسألون عن ما يختلف في الواقع بين المصدر الذي تم الحصول على المصدر الذي تم الحصول عليه من Google-Google-App-App-App عندما يتم عرضه على حد سواء من خلال محرر HTML نفسه.

لقد قمت هنا بتحميل لقطات الشاشة أيضا:

يظهر المرء المصدر الذي تم الحصول عليه في الثعلب

و يظهر الآخر مصدر Google-App-Google

عندما يتم عرض كلاهما من خلال محرر "MS Front Page".

فرق واحد، وهو أمر واضح للغاية، هو ترميز مختلف: في رمز Fire-Fox يتم عرض كل شيء باللغة الإنجليزية، في حين في رمز Google-App-Engine، أحصل على الكثير من الرموز المختلفة، بدلا من ذلك.

هناك اختلاف آخر هو بعض الخطوط الإضافية في الجزء العلوي من الصفحة في رمز محرك Google App. أعتقد، هذا هو ما أليكس مارتيلي كان يتحدث عن إجابته ("... إن نهج الجلب والطباعة سيكون لديه بيانات تعريف حولها أيضا ...").

هناك اختلاف آخر بسيط هو أن المربع لتقسيم صورة Google إلى عدة صناديق في رمز واحد، في حين أنه لا يزال بالكامل في الآخر.

أليكس مارتيلي اقترح أن أستخدم هذا الرمز (إذا فهمته بشكل صحيح):

from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
   print "content-type: text/plain"
   print

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

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

++++++++++++++++++++++++++++++

متابعة:

حسنا، تم حل المشكلة.

فشلت في دفع اهتمامي الكامل أليكس مارتيليتعليمات، وبالتالي، ظهرت برمز خاطئ. هنا هو الصحيح واحد:

from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
   print "content-type: text/plain"
   print
   print result.content

يعرض هذا الرمز ما هو مطلوب بالضبط - لا توجد خطوط إضافية في الجزء العلوي من الصفحة.

حسنا، ما زلت أحصل على الرموز الغريبة، لكنني اكتشفت أنها ربما مشكلة Google. الشيء هو أنني حاليا في تايوان، ويبدو أن Google على دراية بذلك والتحول تلقائيا من www.google.com (وهو باللغة الإنجليزية) إلى www.google.com.tw (وهو باللغة الصينية)، ولكن هذا واحد ، أعتقد، هو بالفعل موضوع آخر.

شكرا لكل من استجاب هنا.

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

المحلول

لم تقم بإنشاء رأس "نوع المحتوى" الصريح بشكل صريح، وخط خالي من الرؤوس، لذلك من المحتمل أن تضيع الخطوط القليلة الأولى؛ حاول إضافة قبل النهائي print شيء مثل

   print "content-type: text/plain"
   print

وراء هذا، ما تحصل عليه في كلتا الحالتين هو أساسا كبير <script> مع القليل من HTML HTML حوله - هذا كل ما سيعطيك فايرفوكس في صفحة "عرض المصدر"، في حين أن نهج جلب والطباعة سيكون لديه بيانات تعريف حولها أيضا، على سبيل المثال، "DocType" (اعتمادا على محرر HTML الذي تستهدفه، قد يكون هذا أو قد لا يكون مشكلة).

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