Scrapy フレームワークの実践: Jianshu Web サイト データのクロール
Scrapy は、World Wide Web からデータを抽出するために使用できるオープン ソースの Python クローラー フレームワークです。この記事では、Scrapy フレームワークを紹介し、それを使用して Jianshu Web サイトからデータをクロールします。
Scrapy は、pip や conda などのパッケージ マネージャーを使用してインストールできます。ここでは、pip を使用して Scrapy をインストールします。コマンドラインに次のコマンドを入力します:
pip install scrapy
インストールが完了したら、次のコマンドを使用して Scrapy が正常にインストールされたかどうかを確認できます:
scrapy version
次のようなメッセージが表示される場合は、 「Scrapy x.x.x - アクティブなプロジェクトがありません」という出力、Scrapy は正常にインストールされました。
Scrapy の使用を開始する前に、Scrapy プロジェクトを作成する必要があります。コマンド ラインで次のコマンドを入力します。
scrapy startproject jianshu
これにより、現在のディレクトリに「jianshu」という名前の Scrapy プロジェクトが作成されます。
Scrapy では、クローラーは Web サイトから抽出されたデータを処理するコンポーネントです。 Jianshu Web サイトを分析し、クローラーを作成するために Scrapy Shell を使用します。
コマンド ラインで次のコマンドを入力します。
scrapy shell "https://www.jianshu.com"
これにより、Scrapy シェルが起動します。ここで、Jianshu Web サイトのページ ソース コードと要素を表示して、セレクターを作成できます。昇降補助具 。
たとえば、次のセレクターを使用して記事のタイトルを抽出できます:
response.css('h1.title::text').extract_first()
次のセレクターを使用して記事の著者を抽出できます:
response.css('a.name::text').extract_first()
Scrapy でテスト済みシェル セレクターを選択した後、クローラー用の新しい Python ファイルを作成できます。コマンド ラインで次のコマンドを入力します:
scrapy genspider jianshu_spider jianshu.com
これにより、「jianshu_spider」という名前の Scrapy クローラーが作成されます。 Scrapy Shell でテストしたセレクターをクローラーの .py ファイルに追加し、抽出するデータを指定できます。
たとえば、次のコードは、Jianshu Web サイトのホームページにあるすべての記事のタイトルと著者を抽出します。
import scrapy class JianshuSpider(scrapy.Spider): name = 'jianshu_spider' allowed_domains = ['jianshu.com'] start_urls = ['https://www.jianshu.com/'] def parse(self, response): for article in response.css('li[data-note-id]'): yield { 'title': article.css('a.title::text').extract_first(), 'author': article.css('a.name::text').extract_first(), }
scrapy crawl jianshu_spider -o articles.json
以上がScrapy フレームワークの実践: Jianshu Web サイトのデータをクロールするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。