BeautifulSoup - 在看似简单的情况下解析问题

时间:2017-01-15 17:27:42

标签: python python-2.7 beautifulsoup

我是BeautifulSoup的新手,昨天刚创建了我的第一个脚本。这里有一些代码没有得到我期望的结果:

numbers = []

user_input = input('Write any number.When you are done just write "done": ')

while user_input != "done":
     try:
        numbers.append(int(user_input))
        user_input = input("Write next number : ")
     except ValueError:
        user_input = input("please enter a valid number : ")

print("The largest number is ", max(numbers))
print("The smallest number is ", min(numbers))

我期待获得......

html = """<a href="http://www.example.com"><b>Text</b> and more text</a>"""
exampleSoup = BeautifulSoup(html, "html.parser")
print exampleSoup.a.string

但我得到“无”。我错误地假设了什么?

我在html变量上运行了诊断,但是(正如预期的那样)这似乎不是一个解析问题,因为一切都和它最初在字符串上一样。

1 个答案:

答案 0 :(得分:3)

如果多个元素的子元素,则.string会返回None

  

如果一个标签包含多个东西,那么不清楚.string应该引用什么,所以.string被定义为None

您的意思是使用str(exampleSoup.a)来获取元素的HTML表示。

或者,如果您想获得包括孩子在内的完整文字,请使用.get_text()

exampleSoup.a.get_text()