0

我想从此链接获取学校的地址信息。我感兴趣的 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()需要一个属性作为参数,而“样式”是一个属性,所以传递属性的名称会让我得到内容......

关于如何获取地址文本的任何建议或 BeautifulSoup 实现?

4

2 回答 2

3

这将得到你想要的:

address = soup.find('div', {'style':'float:left;width:100%;padding-top:10px;padding-bottom:30px;'})
print address.get_text()

使用 dict 来定义styleattr

用于get_text()获取标签之间的文本

于 2013-07-31T15:59:30.767 回答
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 中的保留字。

于 2013-07-31T16:06:07.690 回答