إياد أحمد نشر 26 نوفمبر 2021 أرسل تقرير مشاركة نشر 26 نوفمبر 2021 أحاول استخراج بعض البيانات من إحدى صفحات الويب، لكن يظهر لي خطأ: 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> 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Ali Haidar Ahmad نشر 26 نوفمبر 2021 أرسل تقرير مشاركة نشر 26 نوفمبر 2021 يلعب ترميز الأحرف دوراً رئيسياً في تفسير محتوى مستند 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) اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
إياد أحمد
أحاول استخراج بعض البيانات من إحدى صفحات الويب، لكن يظهر لي خطأ:
الخطأ:
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.