コマンドラインからHTML/XMLを取得して解析する
主にPHP系です。Windows/Mac以外にも、Linux/FreeBSD/Solarisなど様々な環境で利用可能な方法です。
libXML DOMDocument DOMXPath
PHPでDOMを扱うベーシックな方法です。DOMDocumentでサイト/HTMLやXMLを読み込み、XPathで簡単に情報を取得することができます。
PHP Goutte
githubで公開されているGoutteを使う方法です。
簡単に説明すると、Goutteはコンソールで使えるWebブラウザの機能を備えています。
必要となるコンポーネントは、guzzlehttp、react、symfonyなどです。
requestして、ユーザ名、パスワードを入力して、ログインボタンをクリックして、ログインするなんてことも可能です。
HTML要素に対する制御は可能です。phpQuery
githubで公開されているphpQueryを使う方法です。
簡単に説明すると、phpQueryはコンソールで使えるWebブラウザの機能を備えています。
基本PHP Goutteと同じような感じです。
phpQueryは、HTML要素へアクセスする際、jQueryの表現ができることが大きな違いになります。javascript PhantomJS
phantomjs.orgで公開されているPhantomsJSを使う方法です。PhantomJSは、QtのWebKitベースのブラウザですが、CUIから利用が可能です。
簡単な動作イメージは、PhantomJSでサイトにアクセスするとQtWebKit経由でサイトにアクセスして、QtWebKitを経由して、javascriptで制御するといった感じです。
そのため、コンソールからアクセスしていても、スクリーンショットが撮れるというスゴ技ぶりです。
難点は、バイナリが用意されていますが、ソースからコンパイルが必要な場合、
GNU C++ compiler, bison, flex, gperf, Perl, Ruby, SQLite, FreeType, FontConfig, OpenSSL, ICUなどのライブラリが必要になる点です。多くの場合すでに備わっているかと思います。
これ以外にjavaを使う方法もあります。
この辺りの手法は、Web系の単体テスト、機能テストなどにも利用されます。
Webブラウザをエミュレーションする
開発環境が必要です。
実行には、WindowsやMacでログインしている必要があります。
- Windows VisualStudio系
System.Windows.Form.Webbrowserコントロール
ウィンドウのFormにWebBrowserを貼り付けてアクセスする方法です。古くから存在する方法です。NavigateでURLにアクセスします。独自のJavascriptを後から実行する手段も用意されています。
iframeなどが含まれるサイトでは、ドキュメントの読み込み完了が複数回呼び出されるため工夫が必要になります。 - Mac XCode系
WKWebView(webkit)
WebKitブラウザをMacやiPhoneアプリに埋め込めることができます。ドキュメント読み込み開始時点のJavascript埋め込み、ドキュメント読み込み完了後の独自Javascriptの実行などが比較的簡単に行えます。iFrameなどが埋め込まれたサイトでもドキュメントの読み込み完了は、起点となるドキュメント読み込み完了で呼び出されます。
target = __blank__や、BASIC認証などは、自前で対応する必要があります。
WKWebViewの日本語情報は少ないです。おそらくXcodeでドラックアンドドロップできるコントロールになっていないことが大きな要因だと思われます。
個人的な最大なメリットは、セッションを独立させられるということだと思います。
WKProcessPoolがキーワードになります。
基本:webブラウザ
Chrome/IE/SafariなどのブラウザでURLにアクセスします。
CSS、Javascript、画像イメージなどURLに紐付けられているデータを取得できます。
ブラウザ内蔵の開発ツールなどで要素の詳細を見ることが可能です。
- 初期費用0円(2022年8月4日に撤廃)
- 安定したサイト運営が可能(CPU/メモリ リソース保証 6コア/8GB〜)
- 契約中は独自ドメインつき 独自ドメイン永久無料特典があります
- 最大10日間無料で、サーバーのお試し利用ができます
- ディスクキャッシュも高速 NVMe SSDを採用(300GB〜)
- 大量アクセスでも安心 転送量は無制限
-
no image
-
no image