اذهب إلى المحتوى
  • 0

ظهور الخطأ UnicodeEncodeError: 'charmap' codec can't encode characters عند استخدام BeautifulSoup  في بايثون

إياد أحمد

السؤال

أحاول استخراج بعض البيانات من إحدى صفحات الويب، لكن يظهر لي خطأ:

from bs4 import BeautifulSoup
import urllib.request
url="'https://en.wikipedia.org/wiki/NIFTY_50'"
req = urllib.request.urlopen(url)
soup = BeautifulSoup(req.read(), 'html.parser')
print(soup)

الخطأ:

UnicodeEncodeError: 'charmap' codec can't encode characters in position 70924-70950: character maps to <undefined>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يلعب ترميز الأحرف دوراً رئيسياً في تفسير محتوى مستند HTML و XML. لا يحتوي المستند على أحرف إنجليزية فحسب ، بل يحتوي أيضاً على أحرف غير إنجليزية مثل العبرية واللاتينية واليونانية وغير ذلك الكثير. للسماح للمحلل بمعرفة طريقة التشفير التي يجب استخدامها ، ستحتوي المستندات على علامة وسمات مخصصة لتحديد ذلك.
تكتشف وحدة bs4 تلقائياً طريقة التشفير المستخدمة في المستندات وتحولها إلى تنسيق مناسب بكفاءة. ومع ذلك ، في بعض الأحيان يتنبأ بطريقة غير صحيحة بطريقة التشفير، وهذا تماماً مايحدث في حالتك. لذا لحل المشكلة يمكنك استخدام الوسيط from_encoding الذي يخبر الوحدة النمطية bs4 بشكل صريح ، ما هي طريقة التشفير التي يجب استخدامها. هذا يوفر الوقت ويتجنب التحليل غير الصحيح بسبب سوء التوقع.

from bs4 import BeautifulSoup
import urllib.request
url="'https://en.wikipedia.org/wiki/NIFTY_50'"
req = urllib.request.urlopen(url)
soup = BeautifulSoup(req.read(), 'html.parser',from_encoding="utf-8")
print(soup)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...