1

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

结果是这样隔离的:

items=soup.findAll(id=re.compile("itembase"))

对于每个项目,我想从这段 html 中提取例如纬度和经度:

<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>

我怎么做?谢谢。

4

1 回答 1

2
  1. 将您的 html 对象传递给美丽的汤。

    soup = BeautifulSoup(html)
    
  2. 找到分区。

    div = soup.div
    
  3. 从 div 中获取您要查找的属性。

    lat, lon = div.attrs['data-lat'], div.attrs['data-lon']
    
  4. 打印。

    >>> print lat, lon
    51.9006 -8.51008
    

为了清楚起见,我将.attrs方法留在那里,但更笼统地说,您可以访问任何元素的属性,例如字典,您甚至不需要该.attrs方法,如下所示 div['data-lon']:这显然不适用于divs 列表,您需要遍历列表。

for div in divs:
    print div['data-lon'], div['data-lat']

或列表理解。

[(div['data-lon'], div['data-lat']) for div in divs]
于 2012-11-13T18:17:32.517 回答