web-dev-qa-db-ja.com

初心者がPython

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

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

python-主に画面のスクレイピングとテキスト分析を行うだけでなく、PylonsまたはDjangoでWebアプリケーションを作成するためにも学びたいと思います。

だから:私はどのようにPythonでスクレイピングをスクリーンすることを学ぶべきですか?私は scrappy docs を使い始めましたが、多くの「魔法」が起こっているように感じます-結局のところ、私は学ぶだけでなく、学ぶことを試みています。

一方で、ホイールを再発明する理由はありません。Scrapyが画面のスクレイピングでDjangoがWebページに対するものである場合)であれば、結局、Scrapyに直接ジャンプする価値があるかもしれません。あなたは考える?

ああ-BTW:画面スクレイピングの種類:政治家などの言及のために新聞サイト(つまり、かなり複雑で大きな)をスクレイピングしたい-それは、毎日、段階的かつ再帰的にスクレイピングする必要があることを意味し、結果をログに記録する必要がある一種のデータベースに-それは私にボーナス質問につながります:誰もが非SQL DBについて話しています。使い方を覚えるべきですか? mongoDBをすぐに(強力な一貫性が必要だとは思わない)、それとも私がやりたいことに対して愚かですか?

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

31
Andreas

Scrapyのドキュメントがその印象を放っていることに同意します。しかし、私が自分で見つけたように、Scrapyに辛抱強く、最初にチュートリアルを行ってから、残りのドキュメントに自分を埋め込むと、Scrapyのさまざまな部分を理解し始めるだけでなく、 、しかし、あなたはそれがなぜそれがそれをするのと同じようにそれがするのかを理解するでしょう。それはフレームワークの本当の意味でスパイダーとスクリーンスクレイパーを書くためのフレームワークです。それでもXPathを学ぶ必要がありますが、私は関係なくそれを学ぶのが最善だと思います。結局のところ、あなたはWebサイトをスクレイピングするつもりであり、XPathとは何か、そしてそれがどのように機能するかを理解することは、物事をより簡単にするだけです。

たとえば、Scrapyのpipelinesの概念を理解すると、スクラップされたアイテムを使用してあらゆる種類のことを簡単に行うことができるようになります。

BeautifulSoupはすばらしいWebサイトのスクレイピングに使用できるPythonライブラリです。しかし、Scrapyとは対照的に、それは決してフレームワークではありません。適切なスパイダーの作成に時間を費やしたり、大量のデータを廃棄したりする必要がない場合は、BeautifulSoupを使用すれば十分ですが、それ以外の場合は、Scrapyが提供する種類の機能に感謝するだけです。

47
ayaz

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

データベースについては、SQLiteから始めて、壁にぶつかってよりスケーラブルなものが必要になるまで使用することをお勧めします。必要なストレージの。この時点では、Mongodbは確かに過剰ですが、SQLに慣れることは非常に便利なスキルです。

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

11
cababunga

私はBeautifulSoupが本当に好きです。私はPythonにかなり慣れていますが、画面スクレイピングを開始するのはかなり簡単であることがわかりました。 美しいスープを使った画面スクレイピング についての簡単なチュートリアルを書きました。

3
Omer Khan

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

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

プロジェクトを適切に設計し、永続化レイヤーを個別に維持します。必要な場合は、わずかな労力でデータベースソリューションを変更できるはずです。

2
Marvo

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

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

0
Jaakko