如何使用Python获取这个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 个回答
0
Python自带了一些用于解析XML和HTML的工具。
- 元素树解析器
- 这是解析XML文件时最符合Python风格的方法。
- xml.etree.ElementTree
- DOM XML解析器
- SAX XML解析器
- Expat XML解析器
- 简单的HTML和XHTML解析器
- 第三方解析器
- 如果你觉得Python自带的解析器不合适。
- lxml
- BeautifulSoup
我建议你先看看Python自带的解析器,如果觉得这些模块不够好,再去找第三方的解析器。
0
# -*- 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.
3
可以去看看 BeautifulSoup 这个工具。