【发布时间】:2016-09-19 12:33:33
【问题描述】:
我有一个从网页中提取的元素列表:
property_list_items = soup.find_all("li", class_="hover propertyCard property-data-elem clickable")
if len(property_list_items) > 0:
for property_item in property_list_items:
print property_item.meta['content']
print soup(itemprop="geo")[0].get_text()
property_item 元素的开头是这样的:
<li class="hover propertyCard property-data-elem clickable" data-city="Atlanta" data-feed-id="12310" data-list-index="0" data-location-id="52412" data-property-id="9000022319" data-property-state-code="GA" data-property-status="For Rent" id="propertyAnchor_0" itemscope="" itemtype="http://schema.org/ApartmentComplex">
<div itemprop="geo" itemscope="" itemtype="http://schema.org/GeoCoordinates">
<meta content="33.82555" itemprop="latitude"/>
<meta content="-84.33807" itemprop="longitude"/>
</div>
...
现在,当我遍历 alist 中的所有元素时,我想提取存储在属性 - 地理坐标中的特定信息。
我想说这样的话:
property_item['latitude'] 并获取值33.82555
但是,到目前为止,我还没有运气。 property_item.meta['content'] 只产生第一个“值” (33.82555),soup(itemprop="geo")[0].get_text() 返回空结果。
我希望能够一次解析一个特定元素,最好不使用find_all()(如果可能的话),因为latitude 和longitude 仅在特定属性的上下文中才有意义,并且我还需要将它们与属性 ID 等相关联。
对于一个新手问题,提前抱歉。
【问题讨论】:
标签: python-2.7 beautifulsoup html-parsing urllib