Web

2016.04.24

動的webページの更新日時取得方法

webページの更新日時を取得するには、JavaScriptならば、
string = document.lastModified;
を使用したり、C#ならば、HTTPでGETしてHttpWebResponseのLastModifiedで取得する方法があります。

どちらも同じことをしているわけですが、この方法は静的Webページには有効ですが、ブログ・掲示板などのように動的にhtmlを生成する動的Webページには使えません。動的Webページの場合、LastModifiedはhttpリクエスト時点での日時が返されます。

ブログ・掲示板などはWebページ上に更新日時が表示されていることが多いので、htmlを読込みその中の最初に記載されている更新日時を取得すればいいわけです。
この方法で作成したリンク集は、↓です。
http://www.hagimoto.org/webapp/link/WebLink.aspx?site_id=1000

動的webページの更新日時の取得方法を以下にまとめました。
(厳密にいえばWebページの更新日時ではなく、それぞれの記事の更新日時ですが)

1. teacup 掲示板
表示例→投稿日:2016年 4月16日(土)04時31分27秒
html内容↓
<SPAN CLASS="Kiji_Created">
 投稿日:2016年 4月16日(土)04時31分27秒 <!-- Remote Host:・・・以下省略
html parseの開始タグを'投稿日:'、終了タグを' <'として、投稿日時本体(年月日時分まで固定長、秒は可変長)を取得し、先頭からの文字数の位置決めで年月日時分を取得する。秒は1桁or2桁の時があるので、桁数に応じて取得する。

2. ameblo
表示例→2016-04-12 01:45:54
html内容↓
<span class="date">2016-04-12 01:45:54</span>
html parseの開始タグを'<span class="date">'、終了タグを'</span>'として、投稿日時本体(固定長)を取得し、先頭からの文字数の位置決めで年月日時分秒を取得する。

3. excite blog
表示例→2016-02-16 15:02
html内容↓
<tr><td class="SMALL">at 2016-02-16 15:02</td></tr>
html parseの開始タグを'<td class="SMALL">at '、終了タグを'</td>'として、投稿日時本体(固定長)を取得し、先頭からの文字数の位置決めで年月日時分を取得する。秒はないので、00としておく。

4. goo blog
表示例→2016-04-15 22:35:39 又は、2016年04月15日
html内容↓(<rdf:Descriptionの箇所を使う)
dc:date="2016-04-15T22:35:39+09:00"
html parseの開始タグを'dc:date="'、終了タグを'+09:00"'として、投稿日時本体(固定長)を取得し、先頭からの文字数の位置決めで年月日時分秒を取得する。

5. FC2 BLOG
表示例→2016-04-05 又は、2016.04.15 又は、Mar 28
html内容↓(<rdf:Descriptionの箇所を使う)
dc:date="2016-04-05T12:14:18+09:00" />
html parseの開始タグを'dc:date="'、終了タグを'+09:00"'として、投稿日時本体(固定長)を取得し、先頭からの文字数の位置決めで年月日時分秒を取得する。
又は、
dc:date="2016-03-28T14:
<%topentry_minute:39+09:00" />
html parseの開始タグを'dc:date="'、終了タグを'+09:00"'として、投稿日時本体(固定長)を取得し、年月日時は先頭からの文字数の位置決めで取得し、分は後方から2文字分とし、秒は、00とする。

6. YAHOO!ブログ
表示例→2016/4/1(金) 午前 0:16
html内容↓(<rdf:Descriptionの箇所を使う)
dc:date="2016-04-01T00:16:21+09:00" />
html parseの開始タグを'dc:date="'、終了タグを'+09:00"'として、投稿日時本体(固定長)を取得し、先頭からの文字数の位置決めで年月日時分秒を取得する。

7. yaplog
表示例→April 14 [Thu], 2016, 22:53
html内容↓
<div class="date">
<a href="http://yaplog.jp/accordion0210/monthly/201604/">April</a>
<a href="http://yaplog.jp/accordion0210/daily/201604/14/">14</a>
[Thu], 2016, 22:53
</div>
html parseの開始タグを'<div class="date">'として先頭位置を取得したら、Next開始タグを'/daily/'、終了タグを'+09:00"'として、投稿日時本体(可変長)を取得し、先頭からの文字数の位置決めで年月日を取得する。
さらに、後方から文字数をカウントして、時分を取得する。ただし、時は可変長(1時は1、10時は10と記載)。秒は、00とする。
なお、html内容では改行記号はUnicodeの場合2文字分カウントされるので注意。

8. So-net ブログ
表示例→2016-04-16 15:15
html内容↓(<rdf:Descriptionの箇所を使う)
dc:date="2016-04-16T15:15:15+09:00"
html parseの開始タグを'dc:date="'、終了タグを'+09:00"'として、投稿日時本体(固定長)を取得し、先頭からの文字数の位置決めで年月日時分秒を取得する。

9. LocomotionのPHP掲示板
表示例→2016/03/14(Mon) 18:46:42
html内容↓
<span class="com_foot"> ... 2016/03/14(Mon) 18:46:42 [181]</span>
html parseの開始タグを'<span class=\"com_foot\"> ... '、終了タグを' ['として、投稿日時本体(固定長)を取得し、先頭からの文字数の位置決めで年月日を、後方からの位置決めで時分秒を取得する。

10. jugem.jpブログ
表示例→2015.10.31 Saturday
html内容↓(<rdf:Descriptionの箇所を使う)
dc:date="2015-10-31T8:23:38+09:00"
html parseの開始タグを'dc:date="'、終了タグを'+09:00"'として、投稿日時本体(可変長)を取得し、先頭からの文字数の位置決めで年月日時分秒を取得する。
ただし、時は可変長(1時は1、10時は10と記載)である。

11. @Nifty cocolog
rssのアドレスに対してLastModifiedで更新日時を取得することができる。
rssのアドレス表示がないブログでも、
http://xxxxx.cocolog-nifty.com/のブログのrss(rdf)は、
http://xxxxx.cocolog-nifty.com/blog/index.rdf で、
rss(xml)は、
http://xxxxx.cocolog-nifty.com/blog/rss.xml で取得できた。

以上

| | コメント (0) | トラックバック (0)