質問: pythonでapp_storeのランキングデータを取得するスクリプトを書いております。 ↓のXMLファイルから取得予定 ライブラリはfeedparserを使う予定です。 feedparserで取得しようと feedparser.parse(RSS_URL) をして、中身をみていたのですが、 どうも以下のようなim:idのattributeが取得できませんでした。 ` ... >` ↑でいうところの`443904275`だけを取得したいです。 いろいろと調べていると、こちらが近しいことをしているのかなとおもったのですが、結果的に上手く実装できなかったため質問させて頂きました。 feedparserでできない場合は他のライブラリを使おうと思います。 宜しくお願いします。
回答: 上記 feedparser のドキュメントをざっとみましたが、そもそも属性の「im:id='443904275'」を feedparser は取り扱ってくれてないようです。 ご自身が参考にされたという記事に関しても、モンキーパッチを当てて強引に feedparser の挙動を変えてるのであまりお勧めはしません。 そこで別のライブラリを使った簡単な例を示します。 * * 上記二つのライブラリをインストールすれば下記のようなコードで"im:id"が抽出可能です。 ``` import requests from bs4 import BeautifulSoup URL = "https://itunes.apple.com/jp/rss/topfreeapplications/limit=100/xml" soup = BeautifulSoup(requests.get(URL).content, 'html.parser') for tag_id in soup.find_all('id'): im_id = tag_id.get('im:id') if im_id: print(im_id) ```