تقنية

HTMLParser في بايثون: هل يفك True مراجع script؟

محتوى p يحول amp إلى علامة العطف
محتوى عادي. [1] [2]

حدد سياق النص قبل تفسير الخيار. [1] [2]

الخلاصة السريعة

لا؛ محتوى script استثناء في مثالنا. [1] [2]

  • ضبطنا convert_charrefs=True صراحة. [1] [2]
  • داخل p، يصل النص a&b. [1] [2]
  • داخل script، يصل a&b حرفيًا. [1] [2]
  • اختبار style أعطى الاستثناء نفسه. [1] [2]
  • نجمع رسالتي البيانات للنص الكامل؛ التقسيم قد يغير العدد. [1] [2]

المثال

from html.parser import HTMLParser
class P(HTMLParser):
 def handle_data(self,s):
  self.rows.append(s)
p=P(convert_charrefs=True)
p.rows=[]
p.feed("<p>a&amp;b</p>"
       "<script>a&amp;b</script>")
p.close()
print(p.rows)

[1] [2]

السياق يؤثر في التحويل

المصدر يجعل محتوى script وstyle في وضع نصي؛ يمرره إلى معالج البيانات دون فك المراجع. الاختيار True لا يزيل هذا الاستثناء. [1] [2]

محتوى script يبقي المرجع amp حرفيًا
استثناء script. [1] [2]

حدود القراءة

المخرجان a&b وa&amp;b. هذه أحداث محلل في 3.12.14؛ لم نشغل JavaScript أو متصفحًا. لا نعمم عدد الرسائل عند تقسيم المدخل على استدعاءات متعددة. [1] [2]

المراجع

  1. Python 3.12: HTMLParser character references
  2. CPython 3.12.14: raw content data
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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