チュートリアル:スパイダーに行きましょう! PythonとScrapyを使用したWebスクレイピング

投稿日:

(Schwinn Zhang)(2019年1月19日)

画像ソース: https://myfigurecollection.net/item/736413

おそらく「ウェブスクレイピング」について聞いた。まだの場合、Webスクレイピングとは、コンピューターアルゴリズムを使用して、Webサイトからターゲット情報を取得することを意味します。 PythonライブラリScrapyは、まさにこのタスクのために構築されました。美しいスープは別のオプションですが、それは遅いです。とにかく、あなたはソフトウェアを構築するために、データ科学のために、またはクレムリン(ウィンク)のためにこのスキルを習得したいと思います。このトピックに関するチュートリアルは豊富にあります。 「どこから始めればいいの?」 「これに関するロードマップはありますか?」良い情報、悪い情報、古い情報を3日間ふるいにかけた後、このWebスクレイピングのロードマップを提供します。

どこから始めるか

私の計画は次のとおりでした。このリストのPythonプロジェクト。 Twitterマイニングから始めることにした場合は、5日後にTwitterでAPIへのアクセスを許可するのをまだ待っているので(皮肉なことに)幸運を祈ります17時間と7分。だから、バックログアラート!当然、次の手順に進みました。 Python(およびMongoDB)でWebサイトをスクレイプする 。簡単にするために、MongoDBを角かっこで囲んでいます。 MongoDBには多くの時間がかかり、私の小さなプログラムでは必要ありません。むしろ、Python Webスクレイパー全体を機能させて、後でMongoDB機能を追加したいと思います。時間管理とは、トリガーを切り取ってコアに到達することを意味します。 Software Dev101。とにかく、この記事 Python(およびMongoDB)でWebサイトをスクレイピングすると、Webスクレイピングがどのように機能するかについての基本的な感覚が得られます。

XPathとCSS? CSSを選択します

次に、XPathと呼ばれるもの、基本的にはスカウトスパイダーにターゲット情報を示すURLベースの命令で立ち往生しました。チュートリアルを広範囲に閲覧した後、この素敵な フードゲーム XPathの作成を学び練習するのに役立ちます。それでもXPathが怖い場合は、そのチュートリアル記事で言及されていない別の方法があります…

Scrapyの チュートリアル のドキュメントで、シンプルでわかりやすい構文を持つフレンドCSS。実際、Scrapyドキュメントは最良のチュートリアルです。これは最新で徹底的であり、多くのブログチュートリアルはこれに基づいています。このチュートリアルでは、ScrapyのIPythonシェル(基本的には端末上のJupyter Notebook)を介してWeb情報ターゲティングを練習するための最良の方法を見つけました。コマンドラインで

scrapy shell [url in quotes]

を使用してから、quotes.toscrape.comのScrapyチュートリアルに従ってください。ウェブサイトはシンプルで、CSSのレイヤーがほとんどないため、これは理想的な例です。数ラウンド後、あなたはすでにジュニアが忍者をこすっています。この時点で、ニューヨークタイムズのフロントページからすべての見出しを削除するのに十分な自信を持っていました。見よ、フロントページには印象的な量の埋め込みがあるため、現時点では不可能な作業でした。ええと、フロントページは各セクションからの記事のキュレーションされた組み合わせですよね?この論理に従って、私はより単純な論説セクションとアートセクションに行き、すべての見出しをうまくこすり落とすことができました。これが私の repo のgitです。

それで、これが私の最初のクモです。より多くの機能を組み込む必要があります。しかし今のところ、それは機能します。 NYTOp-Edページのすべてのタイトルがここのjsonファイルに保存されていることを確認できます。これがスクリーンショットです。ここで重複が見つかる場合があります。大丈夫です。後で重複検出器を構築できます。また、複数のニュースソースからスクレイプして、その結果を同じファイルに入れる予定です。

NYT OpEdTitlesスクレーパーの結果。出典:Schwinn Zhang

スパイダーアルゴリズムの概要

次のステップ

  1. スパイダーのアルゴリズムや機能の追加
  2. お試しくださいデータセットをスクレイプします。優れたチュートリアルは次のとおりです: Scrapyを使用して独自のデータセットを構築する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です