我已经浏览了之前的问题了一个小时并尝试了各种解决方案,但我无法让它发挥作用。我从网站上提取了我想要的结果,现在我只需要根据我想要的具体信息挖掘这些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>
我该怎么做?感谢。
答案 0 :(得分:2)
将你的html对象传递给漂亮的汤。
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
列表,您需要迭代列表。
for div in divs:
print div['data-lon'], div['data-lat']
或列表理解。
[(div['data-lon'], div['data-lat']) for div in divs]