Python BeautifulSoup提取div中的数据

Python BeautifulSoup提取div中的数据,python,html,beautifulsoup,Python,Html,Beautifulsoup,我浏览了一个小时以前的问题,并尝试了各种解决方案,但我无法让这个工作。我已经从一个网站上提取了我想要的结果,现在我只需要从这些div中挖掘我想要的特定信息 结果是这样孤立的: items=soup.findAll(id=re.compile("itembase")) 对于每个项目,我想从这段html中提取lat和long: <div id="itembase29" class="result-item -result unselected clearfix even" data- par

我浏览了一个小时以前的问题,并尝试了各种解决方案,但我无法让这个工作。我已经从一个网站上提取了我想要的结果,现在我只需要从这些div中挖掘我想要的特定信息

结果是这样孤立的:

items=soup.findAll(id=re.compile("itembase"))
对于每个项目,我想从这段html中提取lat和long:

<div id="itembase29" class="result-item -result unselected clearfix even" data-
part="fl_base" data-lat="51.9006" data-lon="-8.51008" data-number="29" 
is-local="true" data-customer="32060963" data-addrid="1" 
data-id="4b00fae498e3cc370133e8a14fd75160">
<div class="arrow">
</div>

我该怎么做?谢谢

  • 将html对象传递到beautiful soup中

    soup = BeautifulSoup(html)
    
  • 找到div

    div = soup.div
    
  • 从div获取您要查找的属性

    lat, lon = div.attrs['data-lat'], div.attrs['data-lon']
    
  • 印刷品

    >>> print lat, lon
    51.9006 -8.51008
    
  • 为了清晰起见,我把
    .attrs
    方法放在那里了,但更一般地说,你可以访问任何元素的属性,比如字典,你甚至不需要
    .attrs
    方法,比如:
    div['data-lon']
    。这显然不适用于
    div
    s列表,您需要迭代该列表

    for div in divs:
        print div['data-lon'], div['data-lat']
    
    或列表理解

    [(div['data-lon'], div['data-lat']) for div in divs]
    

    谢谢这现在起作用:对于项目中的项目:soup=BeautifulSoup(str(item))div=soup.div print div['data-lon',div['data-lat']