ラベル Xubuntu の投稿を表示しています。 すべての投稿を表示
ラベル Xubuntu の投稿を表示しています。 すべての投稿を表示

2018年12月20日木曜日

JavaScript実行後のHTMLソースを取得する

とあるブログ(blog.jpドメインのlivedoorブログ)を定期的に確認し、更新があったら保存するような仕組みを作りたくなり、シェルスクリプトとwgetでなんとかしようと試行錯誤したのですが、取得したHTMLから記事のURLを抽出できませんでした。

おかしいなと思って取得したHTMLソースを見たところ、記事の中身や写真はすべてJavaScriptでレンダリングされているようです。
多分クローラー避けなんでしょうが、最近はこういうサイトが多くて嫌になります。

残念ながらwgetはJavaScriptを処理してくれないため、このままでは記事を抜き出すことは不可能です。
ということで、JavaScriptを実行した後のHTMLを取得する方法を調べてみたのですが、PhantomJSを使うのが一番簡単そうなので試してみました。

PhantomJSは、様々なOSのディストリビューションでパッケージとして提供されています。

Xubuntuでは、
sudo apt install phantomjs
FreeBSDでは、
pkg install phantomjs
でインストールすることが可能です。

使い方はこんな感じです。
phantomjs script.js ${url_target} ${user_agent}
「script.js」は、以下のような感じで記述します。
var system=require('system');
var webpage=require('webpage');
var url=system.args[1];
var user_agent=system.args[2];
var delay=3000;
var page=webpage.create();
page.settings.userAgent=user_agent;
page.open(url,function(status){
    setTimeout(function(){var html=page.evaluate(function()
    {return document.documentElement.outerHTML;});
    system.stdout.write(html);phantom.exit(0);},delay);})
PhantomJSが第一引数で指定した上記JavaScriptを実行してコンテンツを取得、保存します。

保存したHTMLから、無事に記事のURLを抽出できるようになりました。

尚、PhantomJSを使う以外にも、「Selenium+WebDriver+ブラウザ(ヘッドレスモード)」っていう選択肢もあるようです。
(ブラウザを実行させるためにXなどのGPU環境が必要になるなど、若干重た目かも…)

このように便利はPhantomJSですが、既に開発が終了しているようで、ちょっと残念です。

以下のページを参考にしました、ありがとうございました。
https://teratail.com/questions/19039

2018年5月10日木曜日

HITACHI FLORA Se210(RK2)に軽量Linuxをインストール

先日メモリとディスクを交換したFLORA Se210(RK2)ですが、今日はこのPCにOSをインストールして使える状態にしてみたいと思います。
インストールするのは、軽量Linuxディストリビューション。

・非力なネットブックでもそこそこ動作すること
・継続的なサポートがあること

を基準に、LubuntuとXubuntuを試してみました。

結局、個人的に使いやすそうと感じたXubuntuの方を常用することにしました。

インストール後、特に追加のパッケージをインストールすることなく、日本語の表示や入力も可能でした。
標準エディタのmousepadで日本語入力をしてみたが、なかなか快適です。

最近のLinuxすごいです。

特に何も考えずにi386(32bit版)をインストールしてしまいましたが、Atom N450が64bit対応なことに後で気が付きました。
今度機会があれば、64bit版のXubuntuも試してみたいと思います。