هل هناك أي شيء خاطئ مع رمز جلب عنوان URL لمحرك Google App الذي لدي هنا؟
-
19-09-2019 - |
سؤال
عندما عرض مصدر الصفحة في المتصفح الخاص بي (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 الذي تستهدفه، قد يكون هذا أو قد لا يكون مشكلة).