web-dev-qa-db-ja.com

C#(.NET)用のヘッドレスブラウザー?

私は(だった)Python GUI Webスクレイピングアプリケーションを構築している開発者です。最近、.NETフレームワークに移行し、同じアプリケーションをC#で記述することにしました(この決定はそうではありませんでした)私の)。

Pythonでは、Mechanizeライブラリを使用しました。ただし、.NETで類似するものを見つけることはできません。必要なのは、ヘッドレスモードで実行されるブラウザです。このブラウザには、フォームに入力したり、フォームを送信したりする機能があります。JavaScriptパーサーは必須ではありませんが、非常に便利です。

34
Bo Milanovich

いくつかのオプションがあります:

  • WebKit.Net (無料)

  • Awesomium
    Chrome/WebKitに基づいており、魅力のように機能します。無料のライセンスがありますが、商用ライセンスもあります。必要に応じて、ソースコードを購入できます:-)

  • HTML Agility Pack (無料)
    これはHTMLなどから情報を抽出するのに役立ち、あなたの場合に役立つかもしれません(おそらく HttpWebRequest と組み合わせて)

32
Yahia

その他のソリューション:

  • PhantomJS -フル機能のヘッドレスWebブラウザー。多くの場合、.NETアプリケーションからブラウザにアクセスできるSeleniumと組み合わせて使用​​されます。
  • Optimusnuget package )-軽量のヘッドレスWebブラウザー。ベータ版ですが、場合によっては十分です。

私は両方をWebテストに使用していました。ただし、Webスクレイピングにも適しています。

11
Knyaz

TrifleJS(現在ベータ版)、または 。NET WebBrowser = IEウィンドウレスActiveX/COM APIを介して通信するクラス。

JavaScript API( phantomjs のポート)に興味がなければ、Internet ExplorerのTridentエンジンを使用して、基本的に完全なブラウザ(httpリクエストラッパーではない)を実行します。 C#コードベースのいくつかを使用して、主要な概念(カスタムヘッダー、Cookie、スクリプト実行、スクリーンショットレンダリングなど)を回避します。

これは、インストールしたものに応じてIEの異なるバージョンをエミュレートできることに注意してください。

enter image description here

5
Steven de Salas