【发布时间】:2015-03-24 11:13:45
【问题描述】:
我正在使用 Python 2.7.2 和 BeautifulSoup (bs4) 4.1.0。 我在从页面的 html 中获取感兴趣的项目时遇到问题。 我的直觉告诉我,问题在于存在一个“模糊”标签匹配,它将文本视为格式错误的标签。
这是一个简化的 sn-p 来说明我的问题:
from bs4 import BeautifulSoup
html = "<span>Age 4, Pet Dog, Weight < 6 lbs (< 3 kgs)</span>"
soup = BeautifulSoup(html, 'lxml')
print soup.get_text()
# prints: "Age 4, Pet Dog, Weight"
soup2 = BeautifulSoup(html, 'html.parser')
print soup2.get_text()
# prints "Age 4, Pet Dog, Weight < 6 lbs (< 3 kgs)"
更严格的html.parser 给出了我感兴趣的文本;但是,该站点随机吐出损坏的 html。这些带有错误 html 的页面会导致 HTMLParser.HTMLParseError。有没有办法获得我对使用lxml 解析器感兴趣的完整行,或者该信息是否丢失?如果该信息丢失,是否有替代方法?
【问题讨论】:
标签: python html parsing tags beautifulsoup