アフィリエイト広告を利用しています

Webからデータを取得する3つの方法



コマンドラインから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〜)
  • 大量アクセスでも安心 転送量は無制限

 

 

【このカテゴリーの最新記事】
posted by scripts at 12:14 | Comment(0) | TrackBack(0) | 効率化
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/4345827
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
最新記事
最新コメント
タグクラウド
カテゴリアーカイブ