この記事は最終更新日から1年以上が経過しています。
サンプルとして、CodeZineさんのRSSを参考にしました。
参考にした対象から適当に要素を削除します。
対象
<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet href="../../../../../css/rss/feedRss2.xsl" media="screen" type="text/xsl"?> <rss version="2.0"> <channel> <title>CodeZine:新着一覧</title> <link>http://codezine.jp/</link> <copyright>Copyright 2007-2014 CodeZine, Shoeisha Co., Ltd. All rights reserved.</copyright> <language>ja-jp</language> <pubDate>Thu, 23 Mar 2017 17:36:49 +0900</pubDate> <description>プログラミングに役立つソースコードが満載な開発者のための実装系Webマガジン</description> <image> <url>http://codezine.jp/static/common/images/logo.gif</url> <title>CodeZine</title> <link>http://codezine.jp/</link> </image> <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="self" href="http://rss.rssad.jp/rss/codezine/new/20/index.xml" type="application/rss+xml"/> <item> <title>元号変更にも対応! 日本仕様に強いシステム開発のためのコンポーネント</title> <link>http://rss.rssad.jp/rss/artclk/DlzMEkU2485N/558e99e1dc6a10b2eed9115f27f9126f?ul=3ziLBdsjpvHA_5UPLMRfbhJYV7ghWXmMD2fpdg9Kh9SyEc4MdLqRFmDZSBHcLPlEQ8tOZ7R</link> <guid isPermaLink="true">http://codezine.jp/article/detail/9994</guid> <pubDate>Thu, 23 Mar 2017 14:00:00 +0900</pubDate> <description><![CDATA[<p> 業務アプリケーションの多くが、何らかの情報を入力する機能を有しています。そして本記事に目を通していただいている皆様の多くが、日本語の入力や日本で利用されるアプリケーションの作成に携わっているかと思います。これまで、数々のコンポーネントを紹介してきましたが、その際に何度も日本独自の仕様に対応している点をポイントとして挙げてきました。日本の住所入力に強い点、和暦などの日本の文化に対応している点、そして帳票出力への対応。今回は、これまで紹介してきたコンポーネントが日本独自の仕様に強いポイントを紹介していきます。 <img border="0" width="1" height="1" src="http://rss.rssad.jp/rss/artimg/DlzMEkU2485N/558e99e1dc6a10b2eed9115f27f9126f"/></p>]]></description> </item> ... <item> <title>SlackとElasticsearchを連携し、使いやすい検索システムを作成する</title> <link>http://rss.rssad.jp/rss/artclk/DlzMEkU2485N/96229bb6a9c2bcd798f0e6d3a3c9114c?ul=Hc9CEriyIcQtf1979hdieFPU5lnMFgoUtr3snpwI_yUDx8XU.5bMqtuQQiRErhgSMs9F4g0</link> <guid isPermaLink="true">http://codezine.jp/article/detail/10005</guid> <pubDate>Mon, 13 Mar 2017 14:00:00 +0900</pubDate> <description><![CDATA[<p> 前回はSlackのBotを用いて使いやすい検索システムのUIを作成しました。今回はこれまでに作成した検索用のコンテナとUI提供のコンテナを連携し、質問しやすく使い勝手の良い検索システムを作成します。 <img border="0" width="1" height="1" src="http://rss.rssad.jp/rss/artimg/DlzMEkU2485N/96229bb6a9c2bcd798f0e6d3a3c9114c"/></p>]]></description> </item> </channel> </rss> |
コード
channelタグの中のlanguageとimageとitemタグを消します。
import requests from xml.etree.ElementTree import fromstring, tostring class Sample(object): def req(url): r = requests.get(url) r.encoding = r.apparent_encoding return r def del_elem_channel(xml): for elem in [children for children in xml]: if elem.tag == 'language': xml.remove(elem) elif elem.tag == 'image': xml.remove(elem) elif elem.tag == 'item': xml.remove(elem) return xml def main(): res = Sample.req('http://rss.rssad.jp/rss/codezine/new/20/index.xml') print(es.text) res_xml = fromstring(res.content) for channel in res_xml: Sample.del_elem_channel(channel) print(tostring(res_xml, encoding='unicode', method='xml')) if __name__ == '__main__': main() |
結果
<rss xmlns:ns0="http://www.w3.org/2005/Atom" version="2.0"> <channel> <title>CodeZine:新着一覧</title> <link>http://codezine.jp/</link> <copyright>Copyright 2007-2014 CodeZine, Shoeisha Co., Ltd. All rights reserved.</copyright> <pubDate>Thu, 23 Mar 2017 17:36:49 +0900</pubDate> <description>プログラミングに役立つソースコードが満載な開発者のための実装系Webマガジン</description> <ns0:link href="http://rss.rssad.jp/rss/codezine/new/20/index.xml" rel="self" type="application/rss+xml" /> </channel> </rss> |
この記事を書いた人
最近書いた記事
- 2017.11.13Boto3を使ったら空文字のままだとDynamoDBにデータが入れられなかった話
- 2017.08.24Pythonでユニットテスト書いてみる
- 2017.06.20Pythonで設定ファイルを読み込んでみる(YAMLファイル)
- 2017.05.22PythonでXMLの要素を削除する