web-dev-qa-db-ja.com

Webサイトのスクレイピングに最も柔軟な言語はどれですか。

プログラミングは初めてです。私は少しpythonと少しのObjective Cを知っています。そして、それぞれのチュートリアルを行ってきました。それから私はそれを思いつきました。どの言語がより柔軟であるかを知る必要があります(python、obj c、何か他のもの)Webサイトのコンテンツをスクリーンスクレイピングするため。

「フレキシブル」とはどういう意味ですか?

まあ、理想的には、同様のプロジェクトのために簡単にリファクタリングし、微調整できるものが必要です。プログラムの一部の変数(つまり、スクレイピングするWebサイト、取得するコンテンツなど)を切り替えたい場合は、大量の再書き込み(まあ、再コーディング)を行わないようにしています。

とにかく、ご意見をいただければ幸いです。ああ、そしてあなたが推奨する言語の既存のフレームワークを知っているなら、共有してください。 (pythonのSeleniumとBeautifulSoupについてはすでに知っています)。

3
MSe

最近、比較的複雑なWebスクレーパーを作成して、TONのデータを収集しました。比較的複雑な構文解析を行う必要があり、データベースに格納するために必要でした。現在はC#プログラマーで、以前はPerlの人でした。

Pythonを使用してオリジナルのスクレイパーを作成しました。私は木曜日に始め、日曜日の朝までにショーホースサイトから約100万点以上のスコアを集めていました。 PythonとSQLliteを使用したのは、それらが高速であったためです。

しかし、定期的にデータを更新し、MVC3アプリケーションをバックエンドするSQL Serverにデータを追加するプログラムを作成し始めたので、私はPythonナレッジに問題やギャップを作り続けました。

最後に、私は HtmlAgilityPack を使用してスクレイパー/パーサーをC#で完全に書き直しました。

私は言語と環境をとてもよく知っていたので、より良いデータベースサポート、より良いロギング、より良いエラー処理などを追加することができました。

だから...短い答え..Pythonは「今のところ十分」なソリューションで市場への最速でしたが、私が最もよく知っている言語(C#)が最良の長期的な解決策でした

EDIT:Pythonで書かれた元のクローラーに BeautifulSoup を使用しました。

14
Jay Stevens

最も柔軟なのは、あなたが最もよく知っているものです。

個人的には、ほぼすべてのユーティリティでPython=を使用しています。スクレイピングの場合、構文解析と文字列操作に固有の機能はほとんどコードを必要とせず、高速であり、tonそこにある例の例(強力なコミュニティ)おそらく、誰かがあなたがすでにやろうとしていることをすでに書いているか、少なくとも同じ行に沿って、ほとんどリファクタリングを必要としない何かがあるでしょう。

5
Demian Brecht

私は最近、非常にシンプルなWebスクレイパーを作成しました。私は言語を学んでいるので、Common LISPを選びました。コードベースについては https://github.com/duncan-bayne/myfitnessdata を参照してください https://codereview.stackexchange.com/questions/2277/simple-web-scraper-in -common-LISP-sbcl 批評。

私の経験(言語と経験豊富なLispersからのヘルプの利用可能性の両方)に基づいて、目的に応じてCommon LISPを調査することをお勧めします。

CLで使用できる優れたXML解析ライブラリと、無効なHTMLを解析するためのライブラリがあり、解析しているサイトが有効なXHTMLのみで構成されている場合を除き、これらが必要になります。

また、Common LISPはDSLを実装するのに適した言語です。 Webスクレイピング用のDSLは、柔軟性と再利用の要件に対するソリューションとなる場合があります。

1
Duncan Bayne

Pythonは、Objective Cよりも開始するのに適しています。正直なところ、ほぼすべての言語が「柔軟な」要件を満たしています。必要なのは、よく考えられた構成パラメーターです。また、ランタイム型エラーを考慮に入れれば、Pythonのような動的言語は柔軟性を高めるのに大いに役立ちます。

1