簡體   English   中英

漂亮的湯解析XML

[英]Beautiful soup parsing XML

我有這個數據結構。

<photo id="123" owner="12345" secret="xx" server="12" farm="4" title="109L_0195" 
ispublic="1" isfriend="0" isfamily="0" views="0" tags="military czechrepublic kmk koně 
humpolec všestrannost humpoec vysocinaregion" latitude="49.550933" longitude="15.36652" 
accuracy="16" context="0" place_id="tg5cqdpWW7q18rE" woeid="790349" geo_is_family="0" 
geo_is_friend="0" geo_is_contact="0" geo_is_public="1">
 <description>
Kvalifikační kolo KMK - všestrannost 18.7.2014 - Humpolec
</description>
</photo>


<photo id="123" owner="06" secret="xx" server="12" farm="4"   
title="Ytterligare en bild ifrån inspelningen av Johan Stjerquist's video: Nudist 
Javisst." ispublic="1" isfriend="0" isfamily="0" views="0" tags="square squareformat 
iphoneography instagramapp uploaded:by=instagram" latitude="56.171184" 
longitude="14.741144" accuracy="16" context="0" place_id="u4MzsN9ZW7KnPWo" 
woeid="898740" geo_is_family="0" geo_is_friend="0" geo_is_contact="0" geo_is_public="1">
<description/>
</photo>

它是有關通過Flickr API訪問的照片的可靠信息。 我想提取以下信息:id標題標簽經度緯度

我試圖通過這個來完成。

url = "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=5....b&per_page=250&accuracy=1&has_geo=1&extras=geo,tags,views,description"
soup = BeautifulSoup(urlopen(url))

for data in soup.find_all('photo'):
    print (data.attrs['id' , 'title' , 'tags' , 'latitude' , 'longitude' , 'accuracy'])

那沒有用。 attrs僅接受一個參數。 查看BeautifulSoup的文檔,似乎沒有其他工具可以幫助我獲取所有信息,或者我弄錯了( http://www.crummy.com/software/BeautifulSoup/bs4/doc/ )? 我試圖通過p代替attrs ,但這都不起作用。

任何想法我可以使用哪個命令?

由於attrs是字典,因此您可以使用字典理解僅獲取特定的鍵:

keys = {'id', 'title', 'tags', 'latitude', 'longitude'}
for photo in soup.find_all('photo'):
    print({key:value for key, value in photo.attrs.iteritems() if key in keys})

請注意,如果是Python-3.x,則應使用items()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM