الحصول على الأحرف الدولية من صفحة ويب ؟ [مكررة]

StackOverflow https://stackoverflow.com/questions/53224

  •  09-06-2019
  •  | 
  •  

سؤال

هذا السؤال سبق الجواب هنا:

أريد أن تتخلص من بعض المعلومات من كرة القدم (كرة القدم) صفحة ويب بسيطة باستخدام بيثون regexp هو.المشكلة هي أن لاعبين مثل أول الفصل ، ÄÄRITALO يخرج كما ÄÄRITALO!
هذا هو html يستخدم هرب العلامات على أحرف خاصة ، مثل Ä

هناك طريقة بسيطة القراءة html في الصحيح الثعبان السلسلة ؟ إذا كان XML/XHTML سيكون من السهل حر في أن تفعل ذلك.

هل كانت مفيدة؟

المحلول

أنصح BeautifulSoup HTML كشط.تحتاج أيضا إلى معرفة أن تحويل HTML الجهات المقابلة أحرف Unicode مثل:

>>> from BeautifulSoup import BeautifulSoup    
>>> html = "<html>&#196;&#196;RITALO!</html>"
>>> soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)
>>> print soup.contents[0].string
ÄÄRITALO!

(سيكون من الرائع إذا كان معيار الترميز وشملت وحدة الترميز هذه ، يمكن أن تفعله "some_string".decode('html_entities') ولكن للأسف لا!)

تحرير: حل آخر:بيثون المطور فريدريك لوند (مؤلف elementtree ، من بين أمور أخرى) وقد وظيفة unsecape الكيانات HTML على موقعه الإلكتروني الذي يعمل مع عشري hex و الكيانات اسمه (BeautifulSoup لن تعمل مع عرافة منها).

نصائح أخرى

حاول استخدام BeautifulSoup.فإنه ينبغي أن تفعل خدعة ويعطيك تنسيق جيد دوم للعمل مع.

هذا بلوق دخول يبدو أنه قد حقق بعض النجاح في ذلك.

أنا لم أجربها بنفسي لكن هل حاولت

http://zesty.ca/python/scrape.html ?

يبدو أن طريقة htmldecode(النص) التي من شأنها أن تفعل ما تريد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top