ココログ:各月のURL一覧から全公開記事をダウンロードするVBScript
ココログ:外れている内部リンクを探すから続く。
【はじめに】
最終目的は「ココログの私の全公開記事から、外れている内部リンクを探し、タブ区切りテキストで書き出す」ことだ。そのためにやる事は幾つかある。
ここでは、私が公開している全ブログ記事のHTMLをダウンロードする。
【具体的には】
URLの一覧を読んで、その全頁をダウンロードし、一つのファイルに書き出す。
【欠点】
このスクリプトには欠点がある。
正確には、恐らく幾つかある欠点のうち、一つだけはハッキリわかっている。一カ月に25~26件以上の記事を書いている場合、たぶんこのスクリプトでは上手くいかない。
このスクリプトは、月別アーカイブを全部ダウンロードする。それだけだ。この方法だと、幾つかの記事は取りこぼすかもしれない。
ココログのカテゴリー別のアーカイブは、ちと複雑な構造になっている。例えば「日記・コラム・つぶやき」のアーカイブを見て欲しい。最近の10件の記事は、全文が載っている。それより前の記事は、下のほうに記事名の一覧が出ているだけだ。古い記事の記事の中身を見たいなら、記事名からリンクを手繰らなきゃいけない。
月別のアーカイブも、似たような形になっている…と、思う。とまり、「最近の25件」ぐらいまでは、各月のアーカイブに全文を載せ、それより前の記事は記事名だけを載せる、そんな感じだろう。
私が一カ月に書く記事は、多くても20件ぐらいだ。だから、全月のアーカイブをダウンロードすれば、公開記事を全部ダウンロードできる。
でも、毎日記事を書いているなら、このスクリプトじゃ、月の頭に書いた記事を無視してしまう。
このまま使う人はまずいないと思うが、そういう欠点がある(というか、現時点で少なくともこの欠点だけはわかっている)由をご了解願いたい。
【使い方】
次のプスクリプト(crowl.vbs)に、URL一覧のファイルをドラッグ&ドロップする。巧く動いたら、、公開記事の全文が入ったファイル res.html ができる。
【ソース】
' crowl.vbs アーカイブからクロール vbs5.8 Option Explicit Dim WSH : Set WSH = WScript.CreateObject( "Wscript.shell" ) Dim FSYS: Set FSYS = WScript.CreateObject( "Scripting.FileSystemObject" ) ' ダブルクリックで起動したら使い方を示して終わる if WScript.Arguments.length <> 1 then Call MsgBox( "クロール先一覧をD&Dしる" ) WScript.Quit end if ' D&Dしたファイル名からフルパスと親フォルダを得る Dim cName : cName = WScript.Arguments.Item(0) ' D&Dしたファイルのフルパス Dim cFolder : cFolder = FSYS.getParentFolderName( cName ) & "\" '親フォルダ名 ' クロール先一覧をリストcURLsに読み込む Dim cURLs Set cURLs = CreateObject( "System.Collections.ArrayList" ) Dim cFile Set cFile = FSYS.OpenTextFile( cName, 1, False, 0) If Err.Number <> 0 Then Call MsgBox( "Code:" & Err.Number & " :Can not open " & cName ) WScript.Quit end if Do Until cFile.AtEndOfStream Dim cLine : cLine = cFile.ReadLine cURLs.add( cLine ) Loop cFile.Close() ' クロール Dim aURL, aBuf aBuf = "" For Each aURL In cURLs Dim aHttp Set aHttp = WScript.CreateObject( "MSXML2.XMLHTTP" ) aHttp.Open "GET", aURL, False aHttp.Send aBuf = aBuf & aHttp.ResponseText Next ' 結果をres.htmlに書き出す Dim oFile Set oFile = CreateObject( "ADODB.Stream" ) oFile.Charset = "UTF-8" oFile.Open oFile.WriteText( aBuf ) oFile.SaveToFile cFolder & "res.html", 1 '追加書き oFile.Close Call MsgBox( aURL & ":" & aHttp.Status & ":" & aHttp.statusText ) : WScript.Quit
【URL一覧】
上のスクリプトにドラッグ&ドロップする「URL一覧」は、テキストファイルだ。中身はこんな感じ。1行にURLが1個書いてある、それだけ。
http://chikuwablog.cocolog-nifty.com/blog/2018/11/index.html http://chikuwablog.cocolog-nifty.com/blog/2018/10/index.html http://chikuwablog.cocolog-nifty.com/blog/2018/09/index.html ¦ http://chikuwablog.cocolog-nifty.com/blog/2007/01/index.html
どうやって作ったか、というと。
- 「バックナンバー」のHTMLをテキスト・エディタにコピーする。
- 要らない行を削除する。
- <a href=" と ">.*</a><br /> を一括変換で削除(空文字列に変換)する
と、ほぼ手作業で作りました、はい。
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- サミュエル・ウーリー「操作される現実 VR・合成音声・ディープフェイクが生む虚構のプロパガンダ」白揚社 小林啓倫訳(2021.07.11)
- ココログ:記事編集で余分な改行が入る→初期設定を通常エディタにする(2019.10.10)
- Q.Ethan McCallum「バッドデータ ハンドブック データにまつわる問題への19の処方箋」オライリージャパン 磯蘭水監訳 笹井崇司訳(2019.06.07)
- ココログ:リンク切れ一覧と旧URL一覧と公開記事URL一覧を突き合わせるOpenOfficeCalc(2018.11.18)
- ココログ:古い「カテゴリ別書評一覧」から各記事の旧URL 一覧を作るVBScript(2018.11.15)
コメント