32

これは答えるのが難しい質問の 1 つかもしれませんが、次のようになります。

私はセルフプログラマーとは考えていませんが、やりたいと思っています :-) 私は R を学びました。なぜなら、私は spss にうんざりしていて、友人が私にこの言語を紹介してくれたからです。プログラミングロジック。

今、私は Python を学びたいと思っています - 主に画面のスクレイピングとテキスト分析を行いますが、Pylons または Django を使用して Web アプリケーションを作成することも目的としています。

だから:Pythonでスクリーンスクレイプを学ぶにはどうすればいいですか?私は断片的なドキュメントを読み始めましたが、多くの「魔法」が起こっていると感じています.

一方: 車輪を再発明する理由はありません。Scrapy がスクリーン スクレイピングであり、Web ページに対する Django のようなものである場合、結局のところ、Scrapy に直接ジャンプする価値があるかもしれません。どう思いますか?

ああ - ところで: スクリーンスクレイピングの種類: 政治家などの言及のために新聞サイト (つまり、かなり複雑で大規模) をスクレイピングしたい.ある種のデータベースに - これはおまけの質問につながります: 誰もが SQL 以外の DB について話しているのです。mongoDB などの使用方法をすぐに学習する必要がありますか (強い一貫性は必要ないと思います)、それとも私がやりたいことに対してそれはばかげていますか?

ご意見ありがとうございます。これがプログラミングの質問と見なされるのが一般的である場合はお詫び申し上げます。

4

6 に答える 6

47

Scrapy のドキュメントがその印象を与えていることに同意します。しかし、私が自分自身で見つけたように、Scrapy に忍耐強く、最初にチュートリアルを実行し、次にドキュメントの残りの部分に没頭すれば、Scrapy のさまざまな部分をよりよく理解し始めるだけでなく、 、しかし、なぜそれがそれを行うのかを理解するでしょう。フレームワークの本当の意味でスパイダーとスクリーン スクレーパーを記述するためのフレームワークです。それでも XPath を学習する必要がありますが、とにかく学習するのが最善であることがわかりました。結局のところ、あなたは Web サイトをスクレイピングするつもりであり、XPath とは何か、そしてそれがどのように機能するかを理解することは、物事を容易にするだけです。

たとえば、pipelinesScrapy の概念を理解すると、廃棄されたアイテムをデータベースに保存するなど、あらゆる種類の処理がいかに簡単であるかを理解できるようになります。

BeautifulSoupは、Web サイトのスクレイピングに使用できる素晴らしい Python ライブラリです。しかし、Scrapy とは対照的に、それは決してフレームワークではありません。適切なスパイダーを作成するのに時間を費やす必要がなく、大量のデータを破棄する必要がある小規模なプロジェクトの場合は、BeautifulSoup で十分です。しかし、それ以外の場合は、Scrapy が提供するものに感謝し始めるだけです。

于 2010-12-01T19:58:48.373 に答える
11

Scrappy は DOM トラバーサルに XPATH を使用しているように見えますが、これは言語そのものであり、しばらくの間、やや不可解に感じるかもしれません。BeautifulSoup を使用すると、より迅速に開始できると思います。lxml を使用すると、より多くの時間を学習に費やす必要がありますが、一般的に (私だけでなく) BeautifulSoup よりも優れた代替手段であると考えられています。

データベースについては、SQLite から始めて、壁にぶつかり、よりスケーラブルなものが必要になるまでそれを使用することをお勧めします (どこまで行きたいかによっては、決して起こらないかもしれません)。必要なストレージの。この時点で Mongodb は間違いなくやり過ぎですが、SQL に慣れることは非常に役立つスキルです。

これは、先ほど BeautifulSoup を使用できることを示すために私が示した 5 行の例です。 Web ボットを作成するのに最適なプログラミング言語はどれですか?

于 2010-12-01T19:46:15.977 に答える
3

私はBeautifulSoupが大好きです。私は Python にかなり慣れていませんが、スクリーン スクレイピングを開始するのはかなり簡単であることがわかりました。美しいスープでスクリーンスクレイピングに関する簡単なチュートリアルを書きました。お役に立てば幸いです。

于 2012-09-02T22:02:08.797 に答える
2

学習中は低レベルから始めることをお勧めします。スクレイピーは高レベルのフレームワークです。Dive Into Pythonのような優れた Python の本を読んでから、 lxmlを調べて HTML を解析してください。

于 2010-12-03T04:22:31.103 に答える
2

質問のデータベースの部分ごとに、仕事に適したツールを使用してください。何をしたいのか、どのようにデータを整理したいのか、どのようなアクセスが必要なのかなどを把握してください。次に、SQL を使用しないソリューションがプロジェクトで機能するかどうかを判断します。

SQL を使用しないソリューションは、さまざまなアプリケーションにとどまると思います。過去 20 年間、SQL データベース内で取り組んできたさまざまなプロジェクトにそれらを実装しましたが、アプリケーションが存在するように、no-sql と呼ぶことはありませんでした。したがって、少なくとも、彼らが提供するものと、現在どの製品がうまく機能しているかについての背景を知ることは価値があります.

プロジェクトを適切に設計し、永続層を分離しておけば、データベース ソリューションを変更する必要があると判断した場合でも、わずかな心痛でデータベース ソリューションを変更できるはずです。

于 2010-12-01T19:54:24.933 に答える
0

Scrapy に飛び込む前に、Udacity のコンピューター サイエンス入門を読んでください: https://www.udacity.com/course/cs101

これは、Python に慣れるための優れた方法であり、Python の基本的な知識があれば、実際には Scrapy をはるかに速く学習できます。

于 2013-12-12T16:32:33.053 に答える