Как я могу использовать Python, чтобы получить содержимое этого тега span? - PullRequest
1 голос
/ 20 октября 2010

Я пытаюсь почерпнуть информацию из Google Translate как учебное упражнение и не могу понять, как добраться до содержимого этого тега span.

<span title="Hello" onmouseover="this.style.backgroundColor='#ebeff9'"                                  
      onmouseout="this.style.backgroundColor='#fff'">
    Hallo
</span>

Как бы я использовал Python для доступа к содержимому. Поскольку параметр 'title' этого диапазона является динамическим, я полагаю, что могу указать его как точку входа?

Например, пытаясь перевести: Привет, добро пожаловать в мой дом. Хочешь стакан чая или печенье?

приводит к следующему выводу html:

<span title="Hi, welcome to my house." 
onmouseover="this.style.backgroundColor='#ebeff9'" 
onmouseout="this.style.backgroundColor='#fff'">
    Hallo, mein Haus begrüßen zu dürfen. 
</span>

Ответы [ 3 ]

3 голосов
/ 20 октября 2010

Оформить заказ BeautifulSoup

0 голосов
/ 20 октября 2010

Python поставляется с несколькими синтаксическими анализаторами XML и HTML.

Я бы посоветовал вам сначала взглянуть на парсеры, которые поставляются с Python, а затем на сторонние парсеры, если вы не нашли ничегоДопускается наличие включенных модулей.

0 голосов
/ 20 октября 2010
# -*- coding: utf-8 -*-
def gettext(html):
    for sp in myhtml.split("</span>"):
       if "<span" in sp:
          return sp.rsplit(">")[-1].strip()

myhtml="""
<span title="Hello" onmouseover="this.style.backgroundColor='#ebeff9'"
      onmouseout="this.style.backgroundColor='#fff'">
    Hallo
</span>
"""

print gettext(myhtml)

myhtml="""
<span title="Hi, welcome to my house."
onmouseover="this.style.backgroundColor='#ebeff9'"
onmouseout="this.style.backgroundColor='#fff'">
    Hallo, mein Haus begrüßen zu dürfen.
</span>
"""

print gettext(myhtml)

выход

$ python mytranslate.py
Hallo
Hallo, mein Haus begrüßen zu dürfen.
...