最早、愛など諦めた。

冷却ファンの熱風により愛は干乾びた。
<< October 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
ランキング
うぇい
PR
あなりてぃくす
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
スポンサーサイト

一定期間更新がないため広告を表示しています

- | | - | - |
PythonでブログのRSSから情報を取得
  私はxml.etree.ElementTreeを使いました。

今回は、RSS1.0の場合の手順を記します。 以下、パースと情報の格納するためのプログラムです。

最初は、ブログ情報を格納するためのデータモデルを定義します。
クラス図にするとこんな感じですね。

あ、メンバ変数がほとんどprivateになってますねー。
でもpublicとしての使い方するんでよろしく。
(だったら図を治せよ)(いやめんどい)

#####プログラム始まり#####

from urllib import request #インターネット上のページから取得するため
from xml.etree.ElementTree import * #RSS(XML)をパースするため。

rss_url = 'http://rebis.jugem.jp/?mode=rss' #欲しいRSSのURL
rss = request.urlopen(rss_url).read().decode('utf8') #RSSの取得

elem = fromstring(rss) #RSS(XML)をパース

 ####ブログ情報を格納するクラスを定義する####
#記事情報のクラス
class Article:
    def __init__(self):
        self.title = ''
        self.mainText = ''
        self.url = ''
        self.contribution = None

####ブログ情報のクラス(記事情報を委譲)####
class Blog:
    def __init__(self,elem=None):
        self.blog_id = -1;
        self.title = ""
        self.url = ""
        self.articlelist = []
        if elem != None:
            self.setBlog(elem)
    def setBlog(self,elem):
        #XMLをパースしたものから情報を取得
        self.url = elem.find('{http://purl.org/rss/1.0/}channel').get('{http://www.w3.org/1999/02/22-rdf-syntax-ns#}about') #ブログのURLを取得
        self.title = elem.find('{http://purl.org/rss/1.0/}channel').find('{http://purl.org/rss/1.0/}title').text #ブログのタイトルを取得
        #以下、記事情報を取得
        for e in elem.findall('{http://purl.org/rss/1.0/}item'):
            article = Article()
            article.url = e.get('{http://www.w3.org/1999/02/22-rdf-syntax-ns#}about')
            article.title = e.find('{http://purl.org/rss/1.0/}title').text
            dtstr = e.find('{http://purl.org/dc/elements/1.1/}date').text
            dt = datetime.strptime(dtstr,'%Y-%m-%dT%H:%M:%S+09:00')
            article.contribution = dt
            article.mainText = e.find('{http://purl.org/rss/1.0/modules/content/}encoded').text
            self.articlelist.append(article)
###データモデルの定義終わり###

###XMLをパースしたものからブログデータを取得####
blog = Blog(elem)

#######終わり#######
以上です。

あとは、

print(blog.title)

とかすればブログのタイトルを表示できます。
記事の情報を取得したい場合は、

for article in blog.articlelist:
     print(article.title)

とかすれば出来ます。

ちなみに、ライブドアブログの場合はこーゆーURLらしいっすね。
http://blog.livedoor.jp/rebis/index.rdf
http://blog.livedoor.jp/ブログID/index.rdf

 




 
スポンサーサイト
- | 20:15 | - | - |
コメント
コメントする









 

(C) 2017 ブログ JUGEM Some Rights Reserved.