我想从此link获取学校的地址信息。我感兴趣的HTML看起来像这样:
<div style="float:left;width:100%;padding-top:10px;padding-bottom:30px;">
<div>1936 North St.</div>
<div>Natchitoches, TX 75962</div>
<div>936-468-2901</div>
</div>
所需的文字是:
1936 North St.
Natchitoches, TX 75962
936-468-2901
以下是我的尝试:
address = soup.find('div', 'float:left;width:100%;padding-top:10px;padding-bottom:30px;')
print address
我的输出:None
我认为soup.find()
将一个属性作为参数,而'style'是一个属性,所以传递属性的名称会得到内容......
关于如何获取地址文本的任何建议或BeautifulSoup实现?
答案 0 :(得分:3)
这将完全符合您的要求:
address = soup.find('div', {'style':'float:left;width:100%;padding-top:10px;padding-bottom:30px;'})
print address.get_text()
使用dict定义style
attr
使用get_text()
在代码之间获取文字
答案 1 :(得分:1)
要按属性搜索,您需要告诉BeautifulSoup要查看哪个属性。有几种方法可以做到这一点:
>>> soup.find('div', style='float:left;width:100%;padding-top:10px;padding-bottom:30px;')
<div style="float:left;width:100%;padding-top:10px;padding-bottom:30px;">
<div>1936 North St.</div>
<div>Natchitoches, TX 75962</div>
<div>936-468-2901</div>
</div>
>>> soup.find('div', {
... 'style': 'float:left;width:100%;padding-top:10px;padding-bottom:30px;'
... })
<div style="float:left;width:100%;padding-top:10px;padding-bottom:30px;">
<div>1936 North St.</div>
<div>Natchitoches, TX 75962</div>
<div>936-468-2901</div>
</div>
如果您正在搜索class
属性,后者非常有用,该属性不能是关键字参数,因为它是Python中的保留字。