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

السؤال

نشر

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

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...