使用Beautiful Soup来提取下面的HTML

时间:2016-11-07 02:54:03

标签: python-3.x beautifulsoup

<li class="col-md-6 col-sm-6 col-xs-12"
    data-sort-distance="8.6920742598"
    data-sort-name="Adobe at Arizona Biltmore Country Club"
    data-sort-rating="3.9000000000"
    data-sort-ratings-count="380"
    data-sort-first-review="2012-09-21 00:44:00"
    data-sort-last-review="2016-11-02 17:19:59"
    data-sort-3mi-yoh="-0.327954838709677419354838710"
>

是否可以使用soup.find_all()来提取Data-sort-XXX值,还是需要运行正则表达式来提取等号后的值?

- 更新 - 感谢您的快速回复。我知道必须有办法。

enter image description here

1 个答案:

答案 0 :(得分:1)

来自bs4 documentation

  

标签可以包含任意数量的属性。标签compute id_element=1 + trunc((IEindex-0.1)/262). exe.   有一个属性“class”,其值为“boldest”。你可以访问   通过将标记视为字典来处理标记的属性:

<b class="boldest">
  

您可以直接以.attrs:

的形式访问该词典
tag['class']
# u'boldest'

因此,在您的情况下,您可以tag.attrs # {u'class': u'boldest'} 获取find_all()代码,然后使用li获取字典中的所有.attrs属性。