如果我想读取格式符合表格中的条目:
<table cellspacing="0" cellpadding="4">
stuff
</table>
我正在使用它作为我当前的方法:
pg = urllib2.urlopen(req).read()
page = BeautifulSoup(pg)
table = page.find('table', cellpadding = 4, cellspacing = 0)
我的table
无法正确读取标记,最好的方法是什么?
答案 0 :(得分:1)
我已经使用BeautifulSoup版本3和4对此进行了测试。您的代码适用于BS4,因此您必须使用版本3.
>>> from bs4 import BeautifulSoup as BS4 # Version 4
>>> from BeautifulSoup import BeautifulSoup as BS3 # Version 3
>>> bs3soup = BS3("""<table cellspacing="0" cellpadding="4">
...
... stuff
...
... </table>""")
>>> bs4soup = BS4("""<table cellspacing="0" cellpadding="4">
...
... stuff
...
... </table>""")
>>> bs3soup.find('table', cellpadding = 4, cellspacing = 0) # None
>>> bs4soup.find('table', cellpadding = 4, cellspacing = 0)
<table cellpadding="4" cellspacing="0">
stuff
</table>
所以,如果你想继续使用BS3,这应该解决它:
>>> soup.find('table', cellpaddin="4", cellspacing="0") # Notice how the integers are now strings, like in the HTML.
但是,您应该使用版本4(from bs4 import BeautifulSoup
)。