12

こんにちは、サード パーティの Web ページのフォームをスクレイピングまたは操作するデスクトップ アプリ (c# prob) を作成したいと考えています。基本的に、デスクトップ アプリのフォームにデータを入力すると、サード パーティの Web サイトに移動し、バックグラウンドでスクリプトなどを使用して、そこにデータを入力し (ログインを含む)、送信ボタンをクリックします。ブラウザのロードを避けたいだけです!

この分野で多くの (まったく!) 作業を行っていないので、perl、python、ruby などのスクリプト言語を使用すると、このような作業が可能になるのではないかと考えていました。それとも、単に c# と .net を使用してすべてのスクレイピングを行うのでしょうか? IYOはどれがいい?

スクリプトは、異なるプラットフォームのアプリケーションから同じスクリプトにフックする必要があるかもしれないと考えていました (たとえば、デスクトップ バージョンのように c# で開発できないシンビアン モバイル)。

それ以外の場合は、元のサイトを使用することもできます。無意味に聞こえるかもしれませんが、この特定のフォームの自動化は、私にとって本当に時間の節約になります。

4

13 に答える 13

26

BeautifulSoupを見ることを忘れないでください。強くお勧めします。

たとえば、options-for-html-scraping を参照してください。このタスクのためにプログラミング言語を選択する必要がある場合は、Python.

あなたの質問に対するより直接的な解決策として、Web ブラウジング用の単純なスクリプト言語であるtwillを参照してください。

于 2009-04-17T12:16:48.943 に答える
6

スクレイピングにはC#を使用します。役立つHtmlAgilityPackパッケージを参照してください。ページの解析には、XPATHまたは正規表現を使用します。.NETは、必要に応じてCookieを簡単に処理することもできます。

WebRequestの作成、送信、応答の待機、Cookieの保存、ネットワークエラーの処理、再送信などのすべての詳細をラップする小さなクラスを作成しました。最終的には、ほとんどの状況で電話をかけることができます。 「GetRequest\PostRequest」とHtmlDocumentを取得します。

于 2009-04-17T13:16:37.410 に答える
4

C# は、スクリーン スクレイピングのニーズに最適です。.NET の正規表現機能は非常に優れています。ただし、このような単純なタスクでは、目的を達成できない言語を比較的簡単に見つけるのは困難です。すでに C# でプログラミングしていることを考えると、それを使い続けると思います。

組み込みのスクリーン スクレイピング機能も一流です。

于 2009-04-17T12:10:10.377 に答える
4

.NET HTML Agility Pack を使用してみることができます。

http://www.codeplex.com/htmlagilitypack

「これは、読み取り/書き込み DOM を構築し、プレーンな XPATH または XSLT をサポートするアジャイル HTML パーサーです (実際には、使用するために XPATH や XSLT を理解する必要はありません。心配しないでください...)。それは .NET です。 「ウェブ外」の HTML ファイルを解析できるコード ライブラリ. パーサーは「現実世界」の不正な HTML に対して非常に寛容です. オブジェクト モデルは System.Xml を提案するものと非常に似ていますが、HTML ドキュメント (またはストリーム) 用です. ."

于 2009-04-17T13:30:15.333 に答える
3

NekoHTML で Groovy を使用します。(Groovy を Google App Engine で実行できるようになったことにも注意してください。)

Keplar ブログの実行可能なコードの例を次に示します。

Groovy を使用したスクレイピングによる競争力の向上

于 2010-01-21T09:21:50.840 に答える
2

IMO Perl の組み込みの正規表現機能とテキストを操作する機能により、スクリーン スクレイピングのかなりの候補になります。

于 2009-04-17T12:06:22.493 に答える
2

グルービーはとても良いです。

例: http://froth-and-java.blogspot.com/2007/06/html-screen-scraping-with-groovy.html

Groovy と HtmlUnit も非常によく一致します: http://groovy.codehaus.org/Testing+Web+Applications Htmlunit は、Javascript をサポートする完全なブラウザーをシミュレートします。

于 2009-04-18T17:13:04.573 に答える
2

Ruby はとても素晴らしいです!... その hpricot/mechanize を試してみてください

于 2009-04-17T13:38:27.000 に答える
1

PHP は、 Perl 互換の正規表現サポートcURL ライブラリが優れているため、優れた候補です。

于 2009-04-17T12:09:17.417 に答える
1

HTML アジリティ パック (c#)

  1. XPath は壊れています。HTML をクリーンアップして xml に準拠させる方法では、タグが削除され、式を調整して機能させる必要があります。
  2. 使い方は簡単

Mozilla パーサー (Java)

  1. 堅実な XPath サポート

  2. 機能する前に環境変数を設定する必要がありますが、これは面倒です

  3. org.dom4j.Node と org.w3c.dom.Node の間でキャストして異なるプロパティを取得するのは本当に面倒です

  4. 非標準のhtmlで死にます(0.3でこれが修正されます)

  5. XPath の最適なソリューション

  6. NodeList 内のノードのデータにアクセスする際の問題

    for(int i=1;i<=list_size;i++) を使用してそれを回避します

美しいスープ (パイソン)

私はあまり経験がありませんが、ここに私が見つけたものがあります

  1. XPath サポートなし
  2. html をパスするための優れたインターフェイス

Mozilla HTML パーサーの方が好き

于 2009-04-24T16:36:21.400 に答える
1

HP の Web 言語 (以前の WEBL) を見てみましょう。

http://en.wikipedia.org/wiki/Web_Language

于 2010-12-03T18:23:01.053 に答える
0

または、C# の WebClient といくつかの文字列操作に固執します。

于 2009-04-17T13:34:39.940 に答える
0

私は python (または Beautiful Soup) の推奨事項を 2 番目に挙げます。私は現在、Pythonを使用した小さなスクリーンスクレイピングプロジェクトの真っ最中であり、Python 3のCookie認証(CookieJarおよびurllibによる)などの自動処理により、物事が大幅に簡素化されています。Python は、(正規表現などの) 必要なより高度な機能をすべてサポートしているだけでなく、このようなプロジェクトを迅速に処理できるという利点もあります (低レベルのものを処理する際のオーバーヘッドがあまりありません)。また、比較的クロスプラットフォームでもあります。

于 2009-04-29T07:30:12.840 に答える