0
我想檢查一個表中是否有數字值。爲什麼這個代碼在這個表格中找不到數字文本「699」?打印語句的值爲「無」。爲什麼BeautifulSoup不能在Python的表格中找到文本?
html = """
<table>
December 31, 1997 1996 1995 1994 1993
Allowance for credit losses--loans 699 773
Allowance for credit losses--
trading assets 285 190
Allowance for credit losses--
other liabilities 13 10
- --------------------------------------------------------------------------------
Total $ 997 $ 973 $ 992 $1,252 $1,324
================================================================================
</table>
"""
soup = BeautifulSoup(''.join(html))
table = soup.find('table')
test = table.find(text='699')
print test
美麗的湯是一個HTML解析器。您的表格不是HTML代碼。 – 2012-05-09 20:35:48
您應該將表格轉換成
回答
table.find()
將搜索表內的所有標籤,但表中沒有標籤。只有一個字符串,恰好是一個ASCII表格,它不會被格式化爲HTML格式。如果您想使用BeautifulSoup來解析表格,您需要先將其轉換爲HTML表格。否則,您可以使用
table.string
來獲取字符串本身並使用正則表達式解析該字符串。來源
2012-05-09 20:42:34
謝謝。這工作。 – myname
如果您通過a string as an argument into a Beautiful Soup find() method,美麗的湯尋找確切的字符串。傳入文本='699'將找到字符串「699」,但不是包含「699」的較長字符串。
要查找包含一個子字符串,可以使用自定義函數或正則表達式:
來源
2012-05-09 22:53:35
相關問題