読者です 読者をやめる 読者になる 読者になる

Itsukaraの日記

最新IT技術を勉強・実践中。最近はDeep Learningに注力。

スクレイピング

スクレイピング関連記事は人気が無くて残念

6月頃まで、Webからの自動情報収集(スクレイピング)がマイブームだったので、結構記事を書いたのですが、現在は、ほとんどアクセスされておらず、残念です。実は、スクレイピングのツールとしても使えるSeleniumは、元々、Webインターフェースを持ったプログ…

DIGA録画番組名一括変更を支援するツール群の説明補充

DIGAの番組名を一括変更するツール群を2月~3月頃に作成し、日々使っております。ずっと問題なく使っていたのですが、先ほど使った際にエラーが表示され、調べたところ、説明不十分な点に気が付きましたので、説明を補充しました。ご参考まで。GitHub - Itsu…

NodeJS+Seleniumを使ったスクレイピングの雛形公開

これまで書いてきた「NodeJS+Seleniumを使ったスクレイピング」の試行結果の成果として、スクレイピング用プログラムの雛形を作成しました。そのままでは使えませんが、プログラムを作成するうえでの参考としてご利用ください。https://github.com/Itsukara/…

NodeJS+Seleniumを使った画像ダウンロード(解決編)

前回記事「NodeJS+Seleniumを使った画像ダウンロードで困ったこと(2)」を書いた後で、実践 Selenium WebDriverにざっと目を通していたところ、新展開がありました。特に、ログイン後にアクセスできる画像を、nodeで直接ダウンロードできるようになりました(…

NodeJS+Seleniumを使った画像ダウンロードで困ったこと(2)

前回記事「NodeJS+Seleniumを使った画像ダウンロードで困ったこと - Itsukaraの日記」の補足+追加です。 WebElementが無い場合があり、エラーとなる 某サイトでは、同じような構成のページが複数あるのですが、ページによってはWebElement(例えば<a href="…

NodeJS+Seleniumを使った画像ダウンロードで困ったこと

某サイトのスクレイピングのためにNodeJS + Selelinum WebDriverでプログラムを作成したのですが、画像のダウンロードでかなり苦労したので、その顛末をメモしておきます。ブラウザでは画像のダウンロードは簡単にできるのに、こんなに苦労するとは思いませ…

NodeJS + Selenium IDE/WebDriverで最強スクレイピング

ここ数日、「DIGAの番組表」と「東京電力の『でんき家計簿』」でスクレイピング用のプログラムを作成してみましたが、NodeJS+CasperJS+PhantomJSよりも、NodeJS+Selenium IDE/WebDriverの方が、簡単でした。スクレイピングには、NodeJS+Selenium IDE/WebDriv…

東京電力「でんき家計簿」の時間別グラフのデータ自動抽出

3月下旬に「東京電力「でんき家計簿」の時間別グラフのデータ抜出 - Itsukaraの日記」で、東京電力「でんき家計簿」の時間別グラフのデータ抽出ツールを紹介しましたが、今回、NodeJSとSelenium WebDriverを使って、抽出を自動化しました。GitHub - Itsukara…

DIGA番組名一括変更ツールの一部をCasperJSで記述

NodeJSやCasperJSの勉強の一環として、DIGAから番組情報を取得する部分を、CasperJSで記載してみました。ご参考まで。 ファイル:diga-dump-casperjs.js リポジトリ:https://github.com/Itsukara/diga-rename なお、これまでは、chromeのDeveloper toolsの…

初心者としてCasperJSで迷ったこと、困ったこと(2)

初心者としてCasperJSで迷ったこと、困ったこと - Itsukaraの日記の続きです。CasperJSのpage DOM環境からCasperJS環境に、任意のスクリプトを渡して実行する機能を試作しました。ご参考まで。(通常は(下図参照)、CasperJS環境からpage DOM環境にスクリプト…

初心者としてCasperJSで迷ったこと、困ったこと

クジラ飛行机さんの本JS+Node.jsによるWebクローラー/ネットエージェント開発テクニックを参考に、CasperJSでプログラムを試作してます。これに際し、迷ったこと、困ったことをメモしました。 CasperJSのfsはnodeのfsと異なる CasperJSのプログラムで、html…

Node.jsやCasperJSでのデバッグ

概要 クジラ飛行机さんの本「JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック」で勉強中です。本を参考にして、Node.jsやCasperJSを使ったプログラムを試作してます。これに際し、デバッグで躓いたので、他の人でも参考になる可能性がある…

東京電力「でんき家計簿」の時間別グラフのデータ抜出

概要 東京電力の「でんき家計簿」が表示する時間別グラフのデータ抜出スクリプトを作成しました。 https://www.kakeibo.tepco.co.jp/dk/com/menu/ 背景 電力自由化への対応として、まずは、現状の電力使用量を正確に把握する必要があると考え、東京電力の電…

DIGA番組名一括変更支援ツールを微修正(中止後の再開処理変更)

概要 番組名書換え中止後に再開した場合の処理を変更。これまでは念のために最初からやり直していたが、処理済みの部分をスキップするように変更。なお、「変更済みの件数」欄の値は書き換え可能であり、書き換えた場合、この値に基づいて、先頭の「変更済み…

DIGA番組名一括変更支援ツールを微修正(より汎用的な書き方に修正)

概要 Javascript第6版を見ていたら、番組名比較関数の実現方法として、bind()を使ったほうが汎用的に思われたので、修正。 詳細 (HISTORY.txtから抜粋) 【2016/03/11(その2)】rename-tinfo.jsを更に微修正(より汎用的なbind()を活用) ・変更前 番組情報のど…

DIGA番組名一括変更支援ツールを更新(コメント付加など)

前回記事以降の修正 前回記事以降、少しずつ修正を加えた。主な目的は保守性向上のためのコメント付加など。また、Javascript第6版を読んで気が付いた点をプログラムに反映。少し読みやすくなり、他の方も手を入れやすくなったと思います。本記事に気が付い…

DIGA番組名一括変更支援ツールの文字コードをUTF-8に統一

概要 DIGAに対する文字コード問題の解決方法が分かったので、全ファイルの文字コードをUTF-8に統一。 詳細(HISTORY.txt)から抜粋 DIGAにデータを送信するformで「accept-charset="shift_jis"」を指定することで解決。このformを含むファイル自体は、utf-8で…

DIGAのIPアドレスをGUIから入力するように修正

概要 これまで、DIGAのIPアドレスが2つのファイルに埋め込んでありましたが、GUIから指定するように変更しました。これで、少しは導入しやすくなったと思います。なお、DIGAのIPアドレスは、次回利用時に引き継がれます(変更は可能です)。 詳細(HISTORY.txt)…

DIGA番組名一括変更支援ツールを少しだけアップデート

概要 昨日、「しばらくはそのままにする予定」と書いたのですが、少し不便なところを修正。具体的には、書換えルールで単純文字列置き換えもできるようにしました。むしろ、こちらがデフォルトです。正規表現を使う書換え規則は、これを示すチェックボックス…

DIGA番組名一括変更支援ツールの機能を全面的に見直し

概要 自分で実際に使っていて、色々と気になるところがあったので、機能を全面的に見直しました。これで、結構使えるようになったと思います。よろしくお願いいたします。主な修正は下記です。 DIGAの全番組一覧のダンプを一回で取得できるようにした。 全番…

RegExpベースのルールで番組名を書換えるツールを追加

背景 昨日の記事で、DIGAから取得した録画番組一覧で番組名を書き換えるのが面倒という話を書きました。その中で、「JavascriptのStringオブジェクトのreplaceメソッドを使えば、書換も簡単そう」とも書きましたが、実際に作ってみました。GitHubを参照くだ…

DIGAの録画番組名を纏めて変更する作業を支援するファイル群をGithubに公開

公開場所 DIGAの録画番組名を纏めて変更する作業を支援するファイル群をGithubに公開しました。ぜひご活用ください。なにぶん、1カ月ほど前からWebの勉強を始めた初心者なもので、間違い等がありましたらご容赦ください。 github.com 開発の経緯 前々から、D…